Choix des lecteurs
Articles populaires
L'objet Date vous permet de travailler avec des dates et des heures. Pour créer un nouvel objet Date, utilisez la syntaxe suivante :
Nouvelle date()
Les dates y sont stockées sous forme de nombre de millisecondes écoulées depuis minuit le 1er janvier 1970 selon le temps universel (UTC). Ce format permet à Date de représenter avec précision des dates distantes de 285 616 ans du 1er janvier 1970.
Si le constructeur Date est appelé sans arguments, un objet est créé avec les valeurs de date et d'heure actuelles. Pour créer un objet Date avec une date ou une heure spécifique, vous devrez transmettre l'un des quatre paramètres possibles :
Attention, le chiffre 4 correspond au mois de mai. Cela signifie que janvier correspond au chiffre 0. Les jours sont calculés de la même manière, seulement dans ce cas le dimanche correspond à zéro.
Lorsque vous travaillez avec l'objet Date, il est important de se rappeler que les calculs sont effectués en temps universel (UTC), même si votre ordinateur peut afficher l'heure en fonction de votre fuseau horaire.
Méthodesavoir un rendez-vous() | Renvoie le jour du mois (de 1 à 31) pour la date spécifiée, heure locale. |
getDay() | Renvoie le jour de la semaine (0 à 6 ; 0 = dimanche, 1 = lundi, etc.) pour la date spécifiée en heure locale. |
getFullYear() | Renvoie l'année (quatre chiffres). |
getHeures() | Renvoie l'heure (de 0 à 23). |
getMillisecondes() | Renvoie les millisecondes (de 0 à 999). |
getMinutes() | Renvoie les minutes (de 0 à 59). |
getMois() | Renvoie le mois (de 0 à 11 ; 0 = janvier, 1 = février, etc.). |
getSeconds() | Renvoie les secondes (de 0 à 59). |
obtenir du temps() | Renvoie le nombre de millisecondes écoulées depuis le 01/01/1970 à minuit. |
getTimezoneOffset() | Renvoie le décalage horaire entre l'heure UTC et l'heure locale, en minutes. |
getUTCDate() | Renvoie le jour du mois en UTC (de 1 à 31). |
getUTCDay() | Renvoie le jour de la semaine en Temps Universel (de 0 à 6). |
getUTCFullYear() | Renvoie l'année en temps universel (quatre chiffres). |
getUTCHours() | Renvoie l'heure en temps universel (0 à 23). |
getUTCMillisecondes() | Renvoie les millisecondes en temps universel (de 0 à 999). |
getUTCMinutes() | Renvoie les minutes en temps universel (0 à 59). |
getUTCMois() | Renvoie le mois en UTC (de 0 à 11). |
getUTCSeconds() | Renvoie les secondes en Temps Universel (de 0 à 59). |
analyser() | Analyse une chaîne de date (par exemple, « 21 mai 1992 ») et renvoie une chaîne de valeur de date qui contient le nombre en millisecondes depuis le 1er janvier 1970 00:00:00. |
régler la date() | Définit le jour du mois pour la date spécifiée en heure locale (de 1 à 31). |
setFullYear() | Définit l'année (quatre chiffres). |
setHeures() | Règle l'horloge pour la date spécifiée en fonction de l'heure locale (0 à 23). |
setMillisecondes() | Définit les millisecondes de la date spécifiée sur l'heure locale. |
setMinutes() | Règle les minutes (de 0 à 59). |
setMois() | Règle le mois (de 0 à 11). |
setSeconds() | Règle les secondes (de 0 à 59). |
régler le temps() | Définit la date en millisecondes après (ou avant) le 01/01/1970. |
setUTCDate() | Spécifie le jour du mois. |
setUTCFullYear() | Règle l'année selon le temps universel (quatre chiffres). |
setUTCHours() | Définit l'heure de la date spécifiée en temps universel. |
setUTCMillisecondes() | Définit les millisecondes pour la date spécifiée en temps universel. |
setUTCMinutes() | Définit les minutes de la date spécifiée en temps universel. |
setUTCMois() | Définit le mois pour la date spécifiée en temps universel. |
setUTCSeconds() | Définit les secondes pour la date spécifiée en temps universel. |
versDateString() | |
àISOString() | Convertit une date en chaîne en utilisant la norme ISO 8601. |
versJSON() | Renvoie la date sous forme de chaîne, formatée en date JSON. |
versLocaleDateString() | |
versLocaleTimeString() | Renvoie la partie date sous forme de chaîne, avec une représentation de date basée sur les paramètres système. |
versLocaleString() | Renvoie la date sous forme de chaîne, avec une représentation de la date basée sur les paramètres système. |
àChaîne() | Renvoie une chaîne représentant l'objet Date spécifié. |
àTimeString() | Renvoie la partie date sous forme de chaîne. |
versUTCString() | Convertit une date en chaîne en utilisant le fuseau horaire UTC. |
UTC() | Prend les mêmes paramètres que le constructeur de forme longue (c'est-à-dire 2-7) et renvoie le nombre de millisecondes depuis le 1er janvier 1970, 00:00:00 UTC. |
valeur de() | Renvoie la valeur primitive d'un objet Date. |
Salut tout le monde!
Je dois souvent travailler avec des données statistiques et une grande partie d’entre elles sont liées à des dates. De plus, la même date peut être utilisée sur une page dans différents formats (par exemple, dans un format convivial pour les machines et dans un format convivial pour les humains). Je pense que la plupart d'entre vous sont bien conscients de tout le code horrible qui résulte de l'utilisation de l'objet Date.
Par exemple, pour obtenir la date actuelle au format JJ.MM.AAAA, nous devons procéder comme suit :
var d = new Date(), fd = d.getDate() + "." + (d.getMonth()+1) + "." + d.getFullYear();
Et quand ces lignes deviennent-elles nombreuses ? Est-il facile de se rappeler qu'en JavaScript, le mois commence à zéro lorsque vous n'y développez pas seulement ? Ou le fait qu'il y ait des millisecondes ici, et non des secondes, comme presque partout ailleurs sur le backend ? Vous pouvez résoudre certains problèmes avec la bibliothèque populaire Moment.js, mais elle fonctionne très lentement.
La bibliothèque en question résout ces problèmes.
Si vous êtes intéressé, je vous suggère de lire cette courte critique.
TempusJS contient beaucoup de sucre syntaxique sur l'objet Date, il est donc très rapide. La syntaxe de la bibliothèque elle-même est très simple. Par exemple, vous pouvez écrire l'exemple précédent comme ceci :
var fd = tempus().format("%d.%m.%Y");
Parlons maintenant de la vitesse. Dans le spoiler, vous pouvez voir une comparaison de Tempus avec Moment et la manière native de formater la date (voir ci-dessus) :
Comparaison des JS natifs, MomentJS et TempusJS
Obtenez la date actuelle Native JS x 2 175 575 ops/sec ±0,75 % (96 exécutions échantillonnées) Moment x 284 864 ops/sec ±0,85 % (96 exécutions échantillonnées) Tempus x 2 086 081 ops/sec ±0,73 % (97 exécutions échantillonnées) Formatage Native JS x 1 637 517 ops/sec ±0,61 % (100 exécutions échantillonnées) Moment x 8 808 ops/sec ±1,07 % (100 exécutions échantillonnées) Tempus x 942 815 ops/sec ±0,68 % (94 exécutions échantillonnées) Détection et analyse automatiques de la date Native JS x 11 204 316 ops/sec ±0,81 % (88 exécutions échantillonnées) Moment x 38 511 ops/sec ±1,41 % (95 exécutions échantillonnées) Tempus x 93 973 ops/sec ±1,06 % (85 exécutions échantillonnées) Format d'analyse de date Moment x 46 293 ops/sec ±0,63 % (100 exécutions échantillonnées) Tempus x 109 947 opérations/s ±0,93 % (99 exécutions échantillonnées) Analyse et validation Moment x 44 588 opérations/s ±1,09 % (90 exécutions échantillonnées) Tempus x 103 439 opérations/s ±0,90 % (94 exécutions échantillonnées )Ainsi, les avantages de cette bibliothèque peuvent s’écrire comme suit :
Ici, nous ne parlerons que de certaines fonctions.
Formatage et analyseAlors, tout d’abord, un autre exemple de formatage de date. Ici, nous utilisons également le chaînage d’appels. A la fin de chaque définition de valeur, nous récupérons un objet TempusDate que nous pouvons utiliser plus loin dans la chaîne. Exemple:
tempus(). // obtient une nouvelle date calc((month: -1)). // le réduit d'un mois format("%d.%m.%Y"); // Sortie sous forme de chaîne
Ainsi, nous obtiendrons le même jour, heure et seconde, mais il y a un mois. Cela peut être utile pour obtenir des rapports pour le mois dernier.
L'exemple suivant est l'analyse de date.
// Renvoie un objet TempusDate avec la date "2013-11-18" tempus("11/18/2013"); // Renvoie un objet TempusDate avec la date "2013-12-12" tempus("2013-12-12", "%Y-%m-%d"));
Tempus peut détecter automatiquement certains formats connus. En outre, vous pouvez spécifier un format spécifique, l'analyse sera alors plus rapide. De plus, vous pouvez définir une date qui sera renvoyée si l'analyse échoue :
// Parce que "123" ne rentre pas dans le format "%d.%m.%Y", alors // un objet contenant la date 01/01/2013 tempus("123", "%d.%m.%Y", tempus sera retourné ());
La liste des formats par défaut peut être consultée
Modifions maintenant le format de la date déjà formatée
// "05/11/2013" tempus("05.11.2013").format("%Y-%m-%d"); // Ou comme ça // "12 octobre" tempus("2013-10-12 12:31:01", "%Y-%m-%d %H:%M:%S").format(" %B, %d");
Vous pouvez également utiliser la localisation pour le formatage. Par défaut, la langue de l'utilisateur sera sélectionnée (extraite du navigateur) ou la langue par défaut si la langue de l'utilisateur ne se trouve pas parmi les langues Tempus disponibles.
// Définir la langue tempus.lang("ru"); // Nous utilisons le format par défaut // "Novembre 05" tempus(1383609600).format("%B, %d");
Pour le moment, il n'y a que deux langues - le russe et l'anglais, je serai donc heureux de vous aider.
En cas d'erreur, vous pouvez voir les champs dans lesquels elle s'est produite - partout où la valeur n'est pas fausse :
// Retour ("année":-5,"mois":faux,"jour":faux,"heures":faux, // "minutes":faux,"secondes":faux,"millisecondes":faux) tempus (). année(-5). // définit l'année = -5, c'est-à-dire erreurs invalides (); // récupère un objet avec des erreurs
De plus, nous pouvons modifier n'importe quelle date en utilisant la fonction calc :
// Renvoie TempusDate avec la date 2012-01-01 tempus().calc((année : 1, mois : -4, jour : -1));
Pour travailler avec la date et l'heure en JavaScript, il existe un objet spécial - Date. Cet objet est pris en charge par presque toutes les versions de JavaScript et vous pouvez l'utiliser sans vous soucier des problèmes de compatibilité.
La date et l'heure dans l'objet Date ne sont pas stockées explicitement, mais comme dans la plupart des langages de programmation - comme le nombre de millisecondes écoulées depuis la naissance d'Unix, c'est-à-dire à partir de 0 heures 0 minutes le 1er janvier 1970. Une caractéristique distinctive de l'objet Date est que toutes les valeurs de plage ont des index commençant à zéro. Cela signifie que janvier aura un indice de 0 (mois #0), et décembre ne sera pas le douzième mois, mais le onzième mois. Il en va de même pour les jours de la semaine, les heures, les minutes, etc.
Créer un objet Date est très simple :
// date-heure actuelle var date = new Date(); // date-heure à partir d'une chaîne ou d'un nombre var date = new Date(date); // date-heure à partir de valeurs individuelles var date = new Date(année, mois, jour, heure, minute, seconde, milliseconde) ;
L'objet Date dispose d'un certain nombre de méthodes très utiles qui vous permettent de travailler avec des composants date-heure individuels, ainsi que de vérifier la validité et d'afficher correctement la date dans un format donné.
Méthodes de récupération des composants date-heure | |
getFullYear | Renvoie l'année (par exemple, 2011). |
obtenirAnnée | Renvoie l'année. L'objectif de la méthode getYear est similaire à celui de getFullYear, cependant, cette méthode est obsolète et son utilisation n'est pas recommandée, car les résultats de ses travaux ne sont pas sans ambiguïté : pour la plage de dates de 1900 à 1999, la méthode renvoie le numéro de l'année dans le siècle (deux chiffres, par exemple 77), et pour les dates en dehors de cette plage, elle renvoie la valeur complète (quatre -chiffre, par exemple 2009). |
obtenirMois | Renvoie le mois. |
avoir un rendez-vous | Renvoie le jour du mois (jour du mois). |
obtenir des heures | Renvoie l'heure. |
obtenir des minutes | Renvoie la minute. |
obtenir des secondes | Renvoie la seconde. |
getMillisecondes | Renvoie la milliseconde. |
obtenirJour | Renvoie le numéro du jour de la semaine. |
obtenir du temps | Renvoie le décalage en millisecondes stocké par l'objet. |
Méthodes de modification des composants date-heure | |
setFullYear | Définit l'année. |
setYear | Définit l'année. L’objectif de la méthode setYear est similaire à celui de setFullYear, mais cette méthode est obsolète et son utilisation n’est pas recommandée (tout comme la méthode getYear). |
définirMois | Définit le mois. |
régler la date | Définit la date dans le mois (jour du mois). |
setHeures | Règle l'heure. |
définirMinutes | Règle les minutes. |
setSeconds | Définit la seconde. |
setMillisecondes | Définit la milliseconde. |
régler le temps | Définit le décalage en millisecondes par rapport à 00:00:00 01/01/1970 |
Fonctions de formatage et d'affichage de la date et de l'heure | |
versChaîne | Renvoie une représentation sous forme de chaîne d'une date et d'une heure. |
versUTCString | Renvoie une représentation sous forme de chaîne de la date et de l'heure, converties en UTC. Le format de la chaîne renvoyée respecte tous les standards Internet. |
versGMTString | Renvoie une représentation sous forme de chaîne de la date et de l'heure, converties en GMT (Greenwich Mean Time). Le format de la chaîne renvoyée respecte tous les standards Internet. |
versLocaleString | Similaire à toString, mais renvoie une représentation sous forme de chaîne de la date et de l'heure, formatée en fonction des paramètres régionaux de l'utilisateur donné. |
versTimeString | Renvoie une représentation sous forme de chaîne de l'heure (la chaîne contient uniquement l'heure). |
toDateString | Renvoie une représentation sous forme de chaîne d'une date (la chaîne contient uniquement la date). |
versLocaleTimeString | Similaire à toTimeString, mais renvoie une représentation sous forme de chaîne de l'heure formatée en fonction des paramètres régionaux de l'utilisateur. |
versLocaleDateString | Similaire à toDateString, mais renvoie une représentation sous forme de chaîne de la date, formatée en fonction des paramètres régionaux de l'utilisateur. |
Fonctions supplémentaires | |
getTimezoneOffset | Renvoie le décalage de l'heure locale sur l'ordinateur de l'utilisateur par rapport à l'heure UTC. Le décalage est renvoyé en minutes. |
analyser | La fonction vous permet de vérifier l'exactitude de la date-heure écrite sous forme de chaîne. Si la chaîne est correcte, un objet Date sera créé immédiatement. |
L'objet Date contient également un certain nombre de méthodes permettant de travailler avec les dates UTC. Ces fonctions sont complètement similaires à celles déjà évoquées, mais contiennent le préfixe « UTC » dans le nom et fonctionnent uniquement avec l'heure « universelle » : getUTCSeconds, setUTCFullYear, etc.
Regardons un exemple de travail avec des dates :
var tmp = new Date(now.getTime()); var arrNames = new Array("Aujourd'hui", "Demain", "Dans 1 an 6 mois 15 jours"); var arrNormal = nouveau tableau (); var arrLocal = nouveau tableau (); var arrUTC = nouveau tableau(); // maintenant arrLocal = tmp.toLocaleString(); arrNormal = tmp.toString(); arrUTC = tmp.toUTCString(); // demain tmp.setDate(tmp.getDate() + 1); arrLocal = tmp.toLocaleString(); arrNormal = tmp.toString(); arrUTC = tmp.toUTCString(); // dans 1 an 6 mois 15 jours tmp.setFullYear(tmp.getFullYear() + 1); tmp.setMonth(tmp.getMonth() + 6); tmp.setDate(tmp.getDate() + 15); arrLocal = tmp.toLocaleString(); arrNormal = tmp.toString(); arrUTC = tmp.toUTCString(); // affiche les résultats dans la table document.write("
date | " + "Localisé | " + "Non localisé | " + "UTC |
" + arrNoms[i] + " | + "" + arrLocal[i] + " | + "" + arrNormal[i] + " | + "" + arrUTC[i] + " | + "
Et voici le résultat de ce script :
Comme vous pouvez le constater, la présentation des dates diffère sensiblement selon le format utilisé. Par conséquent, lorsque vous travaillez avec la date et l'heure, vous devez respecter quelques règles simples :
1. Si possible, utilisez les formats UTC ou GMT. Ceci est particulièrement important lors de la création de solutions distribuées (par exemple, clients de systèmes de paiement). L'utilisation d'une heure de référence commune vous donnera la garantie (mais pas à cent pour cent) que vous et votre partenaire distant interpréterez les données reçues de la même manière.
2. Il est logique d'utiliser la date et l'heure localisées uniquement lors de leur affichage à l'utilisateur. Dans tous les autres cas, il vaut mieux refuser les données localisées.
3. Si vous devez quand même utiliser la date et l'heure locales, n'oubliez pas de prendre en compte le décalage de l'heure locale par rapport à celle de référence (UTC ou GMT).
Suivre ces règles vous évitera la plupart des bugs et défauts logiques, et rendra donc votre code plus stable et de meilleure qualité.
Bonne journée à tous les abonnés et lecteurs du site blog. Dans cet article, nous étudierons l'objet intégré du langage de programmation jscript – Date.
L'objet JS Date est conçu pour fonctionner avec la date et l'heure et pour convertir les chaînes au format de date. Lors de la création de la classe Date, jscript utilise le mot-clé new et l'un des trois types de constructeurs, regardons leur syntaxe générale :
Classe JS DATE - date et heureDate() – dans ce cas, la date et l'heure actuelles du js seront affichées au format : , l'heure est définie en fonction du temps moyen de Greenwich, c'est-à-dire en utilisant UTC (UCT - Universal Coended Time).
Date (nMilliseconds) – Comme vous pouvez le voir, nous passons ici un paramètre nMilliseconds, qui spécifie la date1 en millisecondes, à compter du 1er janvier 1970.
Date (année, mois, date [, heures [, min [, sec [, ms]]]]) – Ici, nous voyons que plusieurs paramètres sont transmis au constructeur, ce qui vous permet de définir manuellement toutes les valeurs de date et d'heure js :
Bon, regardons l'exemple suivant d'utilisation de la classe JS DATE dans un script de langage de programmation qui s'exécute sous le contrôle du serveur :
// Objet JS Date // 1_date.js //************************************ var a, b , c //Date1 et heure1 actuelles a = new Date () ; //js //Période 1000 ms après le 1er janvier 1970 b = new Date (1000 ) ; //Heure personnelle date2 c = nouvelle date (2000, 5, 20, 12, 20, 55, 97); WScript.Echo (a + "\n " + b + "\n " + c) ; |
Bon, regardons maintenant les principales méthodes de la classe JS Date.
getFullYear() – Numéro de l’année en cours au format à quatre chiffres.
getDate() – Renvoie le numéro de la date actuelle (de 1 à 31).
getMonth() – Numéro du mois actuel (de 1 à 12).
getDay() - Numéro du jour de la semaine (0 pour dimanche, 1 pour lundi, etc.).
getHours() – Nombre d'heures (le comptage commence à partir de minuit).
getMinutes() - Renvoie le nombre de minutes (en comptant à partir du début de l'heure).
getSeconds() - Nombre de secondes (en comptant à partir du début de la minute).
getMilliseconds() - Nombre de millisecondes.
Jetons un coup d'œil à l'exemple de script suivant qui montre comment utiliser les méthodes de classe Date décrites ci-dessus :
//******************************** // Objet JS Date // 2_date.js //** ** ****************************** var js_new_date = nouvelle Date ; //js var gFullYear, gDate, gMonth, gDay, gHours, gMinutes, gSeconds, gMilliseconds, MyArr, index, list= "" ; gFullYear = "Année\t\t " + js_new_date.getFullYear () ; gDate = "Date\t\t " + js_new_date.getDate(); gMonth = "Mois\t\t" + js_new_date.getMonth(); gDay = "Jour de la semaine\t \t " + js_new_date.getDay () ; gHours = "Heures\t \t " + js_new_date.getHours () ; gMinutes = "Minutes\t\t" + js_new_date.getMinutes(); gSeconds = "Secondes\t\t " + js_new_date.getSeconds(); gMilliseconds = "Millisecondes\t\t " + js_new_date.getMilliseconds(); //Enregistrez tout dans le tableau MyArr = [ gFullYear, gDate, gMonth, gDay, gHours, gMinutes, gSeconds, gMilliseconds] pour (var index dans my_arr) ( list+= MyArr[ index] + "\n " |
On voit qu'ici nous avons déclaré un certain nombre de variables jscript qui stockent les valeurs renvoyées par les fonctions de la classe Date() du langage JS, puis nous avons enregistré toutes les variables dans le tableau MyArr (une description détaillée des tableaux est dans l'article " "), l'accès à celui-ci s'effectue via la boucle for in (j'ai décrit ce cycle dans l'article " "). À la toute fin, nous imprimons une liste de valeurs pour toutes les variables.
getTime() – Le nombre de millisecondes écoulées depuis le 1er janvier 1970. Il est idéal pour calculer le temps d’exécution d’un bloc de code.
//******************************** // date js // méthode GetTime() // 3_date.js / /********************************* var to_time, end_time, time_elapsed, summ= 0 ; //Début to_time = (new Date () ) .getTime () ; pour (var je= 0 ; je
À mon avis, cela ne pourrait pas être plus simple, assez beau et compréhensible. Si vous n'avez pas envie d'étudier la construction de ce script, collez-le simplement n'importe où sur la page HTML et obtenez l'inscription suivante : Une autre option plus avancée // Cela ressemble à ceci : Aujourd'hui En général, aucune compétence n'est requise, il suffit d'insérer bêtement le code et tout va bien ! Plus de détails:Ainsi, nous commençons par attribuer la valeur de date à la variable d, puis créons des tableaux (Array) pour les jours de la semaine (jour) et les mois (mois), en les spécifiant sous la forme grammaticale nécessaire : casse, chiffre, majuscule si le le mot apparaît au début de la date, etc. .P. La dernière ligne du script est la date d'impression réelle (document.write). Ici, vous définissez quoi et dans quel ordre vous afficherez dans la ligne de date actuelle. Les composants sont séparés les uns des autres par un signe +. Pour saisir un espace, utilisez la construction " ", et pour saisir la lettre g (année) utilisez la construction " g ". Comme vous pouvez le voir dans le script, l'obtention de données sur l'heure actuelle est effectuée par l'élément get. Cette méthode vous permet d'obtenir les informations suivantes :
Il n’est pas toujours pratique d’insérer un script Java directement dans une page d’un site Web. Il est préférable de placer la description du script en début de page entre les balises et de définir une variable que nous appellerons selon les besoins dans le texte. Appelons-le AUJOURD'HUI et définissons-y le formulaire de sortie de date similaire à celui ci-dessus. Le script ressemblera à ceci : Pour afficher la date, appelez le script à l'endroit souhaité dans le code HTML de la page à l'aide de la commande suivante : Si votre site contient de nombreuses pages sur lesquelles vous devez afficher la date, il est alors plus pratique de séparer le script Java d'affichage de la date dans un fichier séparé, par exemple data.js. En pratique, il s'agit d'une page constituée du premier des scripts décrits, c'est-à-dire avec la ligne document.write (voir ci-dessus). Elle doit être située dans le même répertoire que la page principale, et appelée à l'endroit où la date est affichée comme suit : N'oubliez pas de vérifier que le fichier data.js a le même encodage que le document principal, sinon la date sera affichée avec de merveilleux crochets, carrés et autres astuces. Commentaire. Il convient de garder à l’esprit que le script décrit affiche la date définie sur l’ordinateur de l’utilisateur, qui ne correspond pas toujours à l’heure réelle. Si vous devez afficher l'heure exacte, vous devez utiliser un script PHP qui affichera l'heure sur le serveur.
gastrogourou 2017
|