Objets JavaScript Date
JavaScript Date Object nous permet de travailler avec des dates :
Année
: 2022 Mois : 1 Jour : 2 Heures: 12 Minutes : 19 Secondes : 29
Exemple
const d = new Date();
Sortie JavaScript Date
Par défaut, JavaScript utilisera le fuseau horaire du navigateur et affichera une date sous forme de
chaîne de texte intégral :
Vous en apprendrez beaucoup plus sur la façon d'afficher les dates, plus loin dans ce didacticiel.
Création d'objets date
Les objets de date sont créés avec le constructeur new Date().
Il existe 9 façons de créer un nouvel objet date :
new Date()
new Date(date string)
new Date(year,month)
new Date(year,month,day)
new Date(year,month,day,hours)
new Date(year,month,day,hours,minutes)
new Date(year,month,day,hours,minutes,seconds)
new Date(year,month,day,hours,minutes,seconds,ms)
new Date(milliseconds)
new Date()
new Date() crée un nouvel objet date avec la date et l'heure actuelles :
Exemple
const d = new Date();
Les objets date sont statiques. L'heure de l'ordinateur tourne, mais pas les objets de date.
1
new Date( année, mois, ... )
new Date(year, month, ...) crée un nouvel objet date avec une date et une heure spécifiées.
7 chiffres spécifient l'année, le mois, le jour, l'heure, la minute, la seconde et la milliseconde (dans cet
ordre) :
Exemple
const d = new Date(2018, 11, 24, 10, 33, 30, 0);
Remarque : JavaScript compte les mois de 0 à 11 :
Janvier = 0.
décembre = 11.
Spécifier un mois supérieur à 11, n'entraînera pas d'erreur mais ajoutera le dépassement à l'année
suivante :
En précisant:
const d = new Date(2018, 15, 24, 10, 33, 30);
Est le même que:
const d = new Date(2019, 3, 24, 10, 33, 30);
Spécifier un jour supérieur au maximum n'entraînera pas d'erreur mais ajoutera le débordement au
mois suivant :
En précisant:
const d = new Date(2018, 5, 35, 10, 33, 30);
Est le même que:
const d = new Date(2018, 6, 5, 10, 33, 30);
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p>JavaScript counts months from 0 to 11.</p>
<p>Specifying a day higher than max, will not result in an error but add the overflow to the next month:</p>
<p id="demo"></p> // ceci affiche
<script>
const d = new Date(2018, 05, 35, 10, 33, 30, 0);
[Link]("demo").innerHTML = d;
</script>
</body>
</html>
2
Utiliser 6, 5, 4, 3 ou 2 nombres
6 chiffres précisent l'année, le mois, le jour, l'heure, la minute, la seconde :
Exemple
const d = new Date(2018, 11, 24, 10, 33, 30);
5 chiffres précisent l'année, le mois, le jour, l'heure et la minute :
Exemple
const d = new Date(2018, 11, 24, 10, 33);
4 nombres spécifient l'année, le mois, le jour et l'heure :
Exemple
const d = new Date(2018, 11, 24, 10);
3 chiffres précisent l'année, le mois et le jour :
Exemple
const d = new Date(2018, 11, 24);
2 nombres précisent l'année et le mois :
Exemple
const d = new Date(2018, 11);
Vous ne pouvez pas omettre le mois. Si vous ne fournissez qu'un seul paramètre, il sera traité en
millisecondes.
Exemple
const d = new Date(2018);
Siècle précédent
Les années à un et deux chiffres seront interprétées comme 19xx :
Exemple
const d = new Date(99, 11, 24);
Exemple
const d = new Date(9, 11, 24);
3
new Date( dateString )
new Date(dateString) crée un nouvel objet date à partir d'une chaîne de date :
Exemple
const d = new Date("October 13, 2014 [Link]");
Les chaînes de date sont décrites plus tard.
JavaScript stocke les dates en millisecondes
JavaScript stocke les dates en nombre de millisecondes depuis le 1er janvier 1970, [Link] UTC
(Universal Time Coordinated).
L'heure zéro est le 01 janvier 1970 [Link] UTC.
L'heure est maintenant : 1641118769284 millisecondes après le 1er janvier 1970
new Date ( millisecondes )
new Date(milliseconds) crée un nouvel objet date sous la forme zéro heure plus millisecondes:
Exemple
const d = new Date(0);
Le 1er janvier 1970 plus 100 000 000 000 millisecondes correspond approximativement au 3 mars
1973 :
Exemple
const d = new Date(100000000000);
Le 1er janvier 1970 moins 100 000 000 000 millisecondes correspond approximativement au 31
octobre 1966 :
Exemple
const d = new Date(-100000000000);
//d a la valeur Mon Oct 31 1966 [Link] GMT+0200 (Eastern European Standard Time)
Exemple
const d = new Date(86400000);
// d a la valeur Fri Jan 02 1970 [Link] GMT+0200 (Eastern European Standard Time)
Un jour (24 heures) équivaut à 86 400 000 millisecondes.
4
Méthodes de l’objet Date
Lorsqu'un objet Date est créé, un certain nombre de méthodes vous permettent de l'utiliser.
Les méthodes de date vous permettent d'obtenir et de définir l'année, le mois, le jour, l'heure, la
minute, la seconde et la milliseconde des objets de date, en utilisant l'heure locale ou l'heure UTC
(universelle ou GMT).
Affichage des dates
JavaScript affichera (par défaut) les dates au format de chaîne de texte intégral :
Exemple
Sun Jan 02 2022 [Link] GMT+0200 (Eastern European Standard Time)
Lorsque vous affichez un objet date en HTML, il est automatiquement converti en chaîne, avec la
méthode toString().
Exemple
const d = new Date();
[Link]();
La méthode toUTCString() convertit une date en une chaîne UTC (une norme standard d'affichage de
date).
Exemple
const d = new Date();
[Link](); // Sat, 22 Jan 2022 [Link] GMT
La méthode toDateString() convertit une date dans un format plus lisible :
Exemple
const d = new Date();
[Link](); // Sat Jan 22 2022
La méthode toLocaleDateString() convertit un objet Date en une chaîne, selon le format Locale
comme suit :
Exemple
const d = new Date();
[Link](); // 1/22/2022
La méthode toISOString() convertit un objet Date en une chaîne, en utilisant le format standard ISO :
Exemple
const d = new Date();
[Link](); // 2022-01-22T[Link].869Z
5
Formats de date JavaScript
Entrée de date JavaScript
Il existe généralement 3 types de formats d'entrée de date JavaScript :
Taper Exemple
Date ISO "2015-03-25" (La norme internationale)
Date courte "03/25/2015"
Date longue « Mar 25 2015 » ou « 25 Mar 2015 »
Le format ISO suit une norme stricte en JavaScript.
Les autres formats ne sont pas aussi bien définis et peuvent être spécifiques au navigateur.
Sortie de date JavaScript
Indépendamment du format d'entrée, JavaScript affichera (par défaut) les dates au format de chaîne
de texte intégral :
Sun Jan 02 2022 [Link] GMT+0200 (Eastern European Standard Time)
Dates ISO JavaScript
ISO 8601 est la norme internationale pour la représentation des dates et des heures.
La syntaxe ISO 8601 (AAAA-MM-JJ) est également le format de date JavaScript préféré :
Exemple (date complète)
const d = new Date("2015-03-25");
La date calculée sera relative à votre fuseau horaire.
Selon votre fuseau horaire, le résultat ci-dessus variera entre le 24 mars et le 25 mars.
Dates ISO (année et mois)
Les dates ISO peuvent être écrites sans spécifier le jour (AAAA-MM) :
Exemple
const d = new Date("2015-03");
Les fuseaux horaires varieront selon le résultat ci-dessus entre le 28 février et le 1er mars.
6
Dates ISO (seulement l'année)
Les dates ISO peuvent être écrites sans mois ni jour (AAAA) :
Exemple
const d = new Date("2015");
Les fuseaux horaires varieront selon le résultat ci-dessus entre le 31 décembre 2014 et le 01 janvier
2015.
Dates ISO (Date-Heure)
Les dates ISO peuvent être écrites avec des heures, des minutes et des secondes ajoutées (AAAA-MM-
JJTHH:MM:SSZ) :
Exemple
const d = new Date("2015-03-25T[Link]Z");
La date et l'heure sont séparées par un T majuscule.
L'heure UTC est définie par une lettre majuscule Z.
Si vous souhaitez modifier l'heure relative à l'UTC, supprimez le Z et ajoutez à la place +HH:MM ou -
HH:MM :
Exemple
const d = new Date("2015-03-25T[Link]-06:30");
// d contient Wed Mar 25 2015 [Link] GMT+0200 (Eastern European Standard Time)
UTC (Universal Time Coordinated) est le même que GMT (Greenwich Mean Time).
Omettre T ou Z dans une chaîne date-heure peut donner des résultats différents selon les navigateurs.
Fuseaux horaires (Time Zones)
Lors de la définition d'une date, sans spécifier le fuseau horaire, JavaScript utilisera le fuseau horaire
du navigateur.
Lors de l'obtention d'une date, sans spécifier le fuseau horaire, le résultat est converti dans le fuseau
horaire du navigateur.
En d'autres termes : si une date/heure est créée en GMT (Greenwich Mean Time), la date/heure sera
convertie en CDT (Central US Daylight Time) si un utilisateur navigue depuis le centre des États-Unis.
Dates courtes JavaScript.
Les dates courtes sont écrites avec une syntaxe "MM/JJ/AAAA" comme celle-ci :
Exemple
const d = new Date("03/25/2015");
7
MISES EN GARDE !
Dans certains navigateurs, les mois ou les jours sans zéro non significatif peuvent générer une erreur :
const d = new Date("2015-3-25");
Le comportement de "AAAA/MM/JJ" n'est pas défini.
Certains navigateurs essaieront de deviner le format. Certains retourneront NaN.
const d = new Date("2015/03/25");
Le comportement de "JJ-MM-AAAA" est également indéfini.
Certains navigateurs essaieront de deviner le format. Certains retourneront NaN.
const d = new Date("25-03-2015");
Dates longues JavaScript.
Les dates longues sont le plus souvent écrites avec une syntaxe "MMM DD YYYY" comme celle-ci :
Exemple
const d = new Date("Mar 25 2015");
Le mois et le jour peuvent être dans n'importe quel ordre :
Exemple
const d = new Date("25 Mar 2015");
Et, le mois peut être écrit en toutes lettres (janvier) ou abrégé (janvier) :
Exemple
const d = new Date("January 25 2015");
Exemple
const d = new Date("Jan 25 2015");
Les virgules sont ignorées. Les noms sont insensibles à la casse :
Exemple
const d = new Date("JANUARY, 25, 2015");
Entrée de date – Analyse des dates (Parsing Dates)
Si vous avez une chaîne de date valide, vous pouvez utiliser la méthode [Link]() pour la convertir
en millisecondes.
[Link]() renvoie le nombre de millisecondes entre la date et le 1er janvier 1970 :
Exemple
let msec = [Link]("March 21, 2012");
Vous pouvez ensuite utiliser le nombre de millisecondes pour le convertir en objet date :
Exemple
let msec = [Link]("March 21, 2012");
const d = new Date(msec);
// d contient Wed Mar 21 2012 [Link] GMT+0200 (Eastern European Standard Time)
8
Méthodes d'obtention de la date JavaScript (Get Date)
Ces méthodes peuvent être utilisées pour obtenir des informations à partir d'un objet date :
Method Description
getFullYear() Get the year as a four digit number (yyyy)
getMonth() Get the month as a number (0-11)
getDate() Get the day as a number (1-31)
getHours() Get the hour (0-23)
getMinutes() Get the minute (0-59)
getSeconds() Get the second (0-59)
getMilliseconds() Get the millisecond (0-999)
getTime() Get the time (milliseconds since January 1, 1970)
getDay() Get the weekday as a number (0-6)
[Link]() Get the time. ECMAScript 5.
La méthode getTime()
La méthode getTime() renvoie le nombre de millisecondes depuis le 1er janvier 1970 :
Exemple
const d = new Date();
[Link]();
La méthode getFullYear()
La méthode getFullYear() renvoie l'année d'une date sous la forme d'un nombre à quatre chiffres :
Exemple
const d = new Date();
[Link]();
La méthode getMonth()
La méthode getMonth() renvoie le mois d'une date sous forme de nombre (0-11) :
Exemple
const d = new Date();
[Link]();
En JavaScript, le premier mois (janvier) est le mois numéro 0, donc décembre renvoie le mois numéro
11.
Vous pouvez utiliser un tableau de noms et getMonth() pour renvoyer le mois sous forme de nom :
Exemple
const months = ["January", "February", "March", "April", "May", "June","July","August",
"September", "October", "November", "December"];
const d = new Date();
let month = months[[Link]()];
9
La méthode getDate()
La méthode getDate() renvoie le jour d'une date sous la forme d'un nombre (1-31) :
Exemple
const d = new Date();
[Link]();
La méthode getHours()
La méthode getHours() renvoie les heures d'une date sous forme de nombre (0-23) :
Exemple
const d = new Date();
[Link]();
La méthode getMinutes()
La méthode getMinutes() renvoie les minutes d'une date sous forme de nombre (0-59) :
Exemple
const d = new Date();
[Link]();
La méthode getSeconds()
La méthode getSeconds() renvoie les secondes d'une date sous forme de nombre (0-59) :
Exemple
const d = new Date();
[Link]();
La méthode getMilliseconds()
La méthode getMilliseconds() renvoie les millisecondes d'une date sous forme de nombre (0-999) :
Exemple
const d = new Date();
[Link]();
La méthode getDay()
La méthode getDay() renvoie le jour de la semaine d'une date sous la forme d'un nombre (0-6) :
Exemple
const d = new Date();
[Link]();
En JavaScript, le premier jour de la semaine (0) signifie "Dimanche", même si certains pays dans le
monde considèrent que le premier jour de la semaine est "Lundi"
Vous pouvez utiliser un tableau de noms et getDay()renvoyer le jour de la semaine sous forme de
nom :
Exemple
const days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
const d = new Date();
let day = days[[Link]()];
10
Méthodes de date UTC (Universal Coordinated Time)
Les méthodes de date UTC sont utilisées pour travailler avec des dates UTC (dates de fuseau horaire
universel) :
Method Description
getUTCDate() Same as getDate(), but returns the UTC date
getUTCDay() Same as getDay(), but returns the UTC day
getUTCFullYear() Same as getFullYear(), but returns the UTC year
getUTCHours() Same as getHours(), but returns the UTC hour
getUTCMilliseconds() Same as getMilliseconds(), but returns the UTC milliseconds
getUTCMinutes() Same as getMinutes(), but returns the UTC minutes
getUTCMonth() Same as getMonth(), but returns the UTC month
getUTCSeconds() Same as getSeconds(), but returns the UTC seconds
11
Méthodes de définition de date JavaScript (Set Date)
Les méthodes Définir la date vous permettent de définir des valeurs de date (années, mois, jours,
heures, minutes, secondes, millisecondes) pour un objet Date.
Définir les méthodes de date
Les méthodes Set Date sont utilisées pour définir une partie d'une date :
Method Description
setDate() Set the day as a number (1-31)
setFullYear() Set the year (optionally month and day)
setHours() Set the hour (0-23)
setMilliseconds() Set the milliseconds (0-999)
setMinutes() Set the minutes (0-59)
setMonth() Set the month (0-11)
setSeconds() Set the seconds (0-59)
setTime() Set the time (milliseconds since January 1, 1970)
La méthode setFullYear()
La méthode setFullYear() définit l'année d'un objet date. Dans cet exemple jusqu'en 2020 :
Exemple
const d = new Date();
[Link](2020);
La méthode setFullYear() peut éventuellement définir le mois et le jour :
Exemple
const d = new Date();
[Link](2020, 11, 3);
La méthode setMonth()
La méthode setMonth() définit le mois d'un objet date (0-11) :
Exemple
const d = new Date();
[Link](11);
La méthode setDate()
La méthode setDate()définit le jour d'un objet date (1-31) :
Exemple
const d = new Date();
[Link](15);
La méthode setDate() peut également être utilisée pour ajouter des jours à une date :
Exemple
const d = new Date();
[Link]([Link]() + 50);
Si l'ajout de jours décale le mois ou l'année, les modifications sont gérées automatiquement par l'objet
Date.
12
La méthode setHours()
La méthode setHours() définit les heures d'un objet date (0-23) :
Exemple
const d = new Date();
[Link](22);
La méthode setMinutes()
La méthode setMinutes() définit les minutes d'un objet date (0-59) :
Exemple
const d = new Date();
[Link](30);
La méthode setSeconds()
La méthode setSeconds() définit les secondes d'un objet date (0-59) :
Exemple
const d = new Date();
[Link](30);
Comparer les dates
Les dates peuvent être facilement comparées.
L'exemple suivant compare la date d'aujourd'hui avec le 23 janvier 2100 :
Exemple
let text = "";
const today = new Date();
const someday = new Date();
[Link](2100, 0, 23);
if (someday > today) {
text = "Today is before January 23, 2100.";
} else {
text = "Today is after January 23, 2100.";
}
JavaScript compte les mois de 0 à 11. Janvier est 0. Décembre est 11.
13