Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Constructeur Date()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Le constructeur Date() crée des objets Date. Lorsqu'il est appelé en tant que fonction, il retourne une chaîne de caractères représentant l'heure courante.
Exemple interactif
const date1 = new Date("December 17, 1995 03:24:00");
// Sun Dec 17 1995 03:24:00 GMT...
const date2 = new Date("1995-12-17T03:24:00");
// Sun Dec 17 1995 03:24:00 GMT...
console.log(date1 === date2);
// Résultat attendu : false
console.log(date1 - date2);
// Résultat attendu : 0
Syntaxe
new Date()
new Date(value)
new Date(dateString)
new Date(dateObject)
new Date(year, monthIndex)
new Date(year, monthIndex, day)
new Date(year, monthIndex, day, hours)
new Date(year, monthIndex, day, hours, minutes)
new Date(year, monthIndex, day, hours, minutes, seconds)
new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds)
Date()
Note :
Date() peut être appelé avec ou sans new, mais avec des effets différents. Voir Valeur de retour.
Paramètres
Il existe cinq formes basiques pour utiliser le constructeur Date() :
Sans paramètre
Lorsqu'aucun paramètre n'est fourni, le nouvel objet Date ainsi créé représente la date et heure courante du moment de l'instanciation.
Une valeur temporelle ou un horodatage numérique
value-
Une valeur entière représentant le timestamp (le nombre de millisecondes écoulées depuis minuit au début du 1er janvier 1970, UTC — c'est‑à‑dire l'epoch).
Chaîne d'horodatage
dateString-
Une chaîne de caractères représentant une date, analysée et interprétée selon le même algorithme que celui implémenté par
Date.parse(). Voir format de chaîne de caractères date-heure pour les mises en garde concernant l'utilisation de différents formats.
Objet Date
dateObject-
Un objet
Dateexistant. Cela crée effectivement une copie de l'objetDateexistant avec la même date et la même heure. Cela équivaut ànew Date(dateObject.valueOf()), sauf que la méthodevalueOf()n'est pas appelée.
Lorsqu'un paramètre est passé au constructeur Date(), les instances de Date sont traitées de manière spécifique. Toutes les autres valeurs sont converties en primitives. Si le résultat est une chaîne de caractères, elle est analysée comme une chaîne de caractères de date. Sinon, la primitive résultante est convertie en nombre et traitée comme un timestamp.
Valeurs pour les composantes individuelles de la date et de l'heure
Soient au moins une année et un mois, cette forme de Date() retournée un objet Date dont les valeurs des composantes (année, mois, jour, heure, minute, seconde, et milliseconde) proviennent des paramètres suivants. Chaque champ manquant prendra la valeur la plus basse possible (soit 1 pour le paramètre day et 0 pour les autres). Les valeurs des paramètres sont évaluées selon le fuseau horaire local et pas UTC. Date.UTC() accepte des paramètres similaires mais interprète les composantes comme UTC et retourne un timestamp.
Si un paramètre dépasse ses bornes définies, il est « reporté ». Par exemple, si un monthIndex supérieur à 11 est passé, ces mois supplémentaires font augmenter l'année ; si un minutes supérieur à 59 est passé, les hours augmentent en conséquence, etc. Ainsi, new Date(1990, 12, 1) retourne le 1er janvier 1991 ; new Date(2020, 5, 19, 25, 65) retourne 2:05 le 20 juin 2020.
De même, si un paramètre est inférieur à sa borne minimale, il « emprunte » à la position supérieure. Par exemple, new Date(2020, 5, 0) retourne le 31 mai 2020.
year-
Une valeur entière représentant l'année. Les valeurs de
0à99correspondent aux années1900à1999. Les autres valeurs correspondent à l'année indiquée. Voir l'exemple. monthIndex-
Une valeur entière représentant le mois, en commençant à
0pour janvier, jusqu'à11pour décembre. dayFacultatif-
Une valeur entière pour le jour du mois. La valeur par défaut est
1. hoursFacultatif-
Une valeur entière entre
0et23représentant l'heure du jour. La valeur par défaut est0. minutesFacultatif-
Une valeur entière représentant le nombre de minutes dans l'heure. La valeur par défaut est
0. secondsFacultatif-
Une valeur entière représentant le nombre de secondes dans la minute. La valeur par défaut est
0. millisecondsFacultatif-
Une valeur entière représentant le nombre de millisecondes dans la seconde. La valeur par défaut est
0.
Valeur de retour
Appeler new Date() (le constructeur Date()) retourne un objet Date. Si on l'appelle avec une chaîne de caractères invalide pour une date, ou si la date à construire a un timestamp inférieur à -8,640,000,000,000,000 ou supérieur à 8,640,000,000,000,000 millisecondes, il retourne une date invalide (un objet Date dont la méthode toString() retourne "Invalid Date" et la méthode valueOf() retourne NaN).
Appeler la fonction Date() (sans le mot-clé new) retourne une représentation en chaîne de caractères de la date et de l'heure courante, exactement comme le fait new Date().toString(). Tout argument passé à un appel de fonction Date() (sans le mot-clé new) est ignoré ; que ce soit une chaîne de caractères invalide pour une date — ou même n'importe quel objet ou autre primitive comme argument — cela retourne toujours une représentation en chaîne de caractères de la date et de l'heure courante.
Description
>Précision temporelle réduite
Pour offrir une protection contre les attaques par mesure de temps et le profilage d'empreinte, la précision de new Date() peut être réduite selon les réglages du navigateur.
Lorsqu'un horodatage, une chaîne de caractères de date, un objet date ou des valeurs de composantes de date sont fournis au constructeur, le navigateur n'applique pas d'arrondi du minuteur à l'heure fournie.
Lorsqu'il est appelé sans arguments, le constructeur obtient l'heure courante de la même manière que Date.now(). Il hérite de la précision de cette lecture de l'horloge sans introduire d'imprécision supplémentaire.
Exemples
>Plusieurs façons de créer un objet Date
Les exemples qui suivent illustrent différentes façons de créer des dates JavaScript :
const aujourdhui = new Date();
const anniversaire = new Date("September 22, 2018 15:00:00"); // DÉCONSEILLÉ : peut ne pas fonctionner dans tous les environnements
const anniversaire2 = new Date("2018-09-22T15:00:00"); // Ceci est standardisé et fonctionne de manière fiable
const anniversaire3 = new Date(2018, 8, 22); // le mois est indexé à partir de 0
const anniversaire4 = new Date(2018, 8, 22, 15, 0, 0);
const anniversaire5 = new Date(628021800000); // en utilisant un timestamp epoch
Passage d'une valeur qui n'est ni une Date, ni une chaîne de caractères, ni un nombre
Si le constructeur Date() est appelé avec un paramètre qui n'est pas une instance de Date, il est converti en primitive puis vérifié pour savoir s'il s'agit d'une chaîne de caractères. Par exemple, new Date(undefined) est différent de new Date() :
console.log(new Date(undefined)); // Invalid Date
Cela s'explique par le fait que undefined est déjà une primitive mais pas une chaîne de caractères, il est donc converti en nombre, ce qui donne NaN et donc pas un horodatage valide. À l'inverse, null est converti en 0.
console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
Les tableaux sont convertis en chaîne de caractères avec Array.prototype.toString(), ce qui joint les éléments avec des virgules. Cependant, la chaîne de caractères résultante pour tout tableau contenant plus d'un élément n'est pas une chaîne de caractères de date ISO 8601 valide, donc son comportement d'analyse est défini par l'implémentation. Ne passez pas de tableaux au constructeur Date().
console.log(new Date(["2020-06-19", "17:13"]));
// 2020-06-19T17:13:00.000Z dans Chrome, puisque "2020-06-19,17:13" est reconnu
// "Invalid Date" dans Firefox
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-date-constructor> |
Compatibilité des navigateurs
Voir aussi
- L'objet natif
Date
Aider à améliorer MDN
Cette page a été modifiée le par les contributeur·ice·s du MDN.
