Constructeur Date()

Crée une instance d'un objet JavaScript Date qui représente un instant donné de façon indépendante de la plateforme. Les objets Date contiennent un nombre (Number) qui représente le nombre de millisecondes écoulées depuis le premier janvier 1970 (UTC).

Exemple interactif

Syntaxe

js
new Date();
new Date(value);
new Date(dateString);

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);

Note : La seule façon correcte d'instancier un nouvel objet Date est d'utiliser l'opérateur new. Si vous invoquez ce constructeur directement (now = Date() par exemple), la valeur renvoyée sera une chaîne de caractères plutôt qu'un objet Date.

Paramètres

Il existe quatre 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 qui représente le nombre de millisecondes depuis le premier janvier 1970 00:00:00 UTC (l'epoch ECMAScript est équivalente à l'epoch UNIX) et pour laquelle les secondes intercalaires sont ignorées. On gardera à l'esprit que la plupart des fonctions d'horodatage UNIX sont précises à la seconde la plus proche.

Chaîne d'horodatage

dateString

Une chaîne de caractères qui représente une date, selon le format reconnu par la méthode Date.parse() qui sont conformes à la RFC 2822 IETF sur les horodatages ou selon le format ISO8601.)

Note : Analyser des chaînes de caractères représentant des dates en utilisant le constructeur Date (ou Date.parse(), qui fonctionne de la même façon) est fortement déconseillé en raison des différences et incohérences entre les différents navigateurs.

  • La prise en charge des chaînes de caractères de format RFC 2822 repose uniquement sur une convention.
  • La prise en charge des formats ISO 8601 diffère en ce que les chaînes décrivant uniquement des dates (ex. "1970-01-01") sont considérées comme UTC et pas comme locales.

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() renvoie 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.

year

Une valeur entière représentant l'année.

Les valeurs de 0 à 99 correspondent aux années 1900 à 1999. Les autres valeurs correspondent aux années avec cette valeur. Voir l'exemple.

monthIndex

Une valeur entière représentant le mois, en commençant à 0 pour janvier, jusqu'à 11 pour décembre. Si une valeur supérieure à 11 est utilisée, les mois supplémentaires sont ajoutés à la date. Ainsi, new Date(1990, 12, 1) renverra une date représentant le premier janvier 1991.

day Facultatif

Une valeur entière pour le jour du mois. La valeur par défaut est 1.

hours Facultatif

Une valeur entière entre 0 et 23, représentant l'heure du jour. La valeur par défaut est 0.

minutes Facultatif

Une valeur entière représentant le nombre de minutes écoulées dans l'heure. La valeur par défaut est 0.

seconds Facultatif

Une valeur entière représentant le nombre de secondes écoulées dans la minute. La valeur par défaut est 0.

milliseconds Facultatif

Une valeur entière représentant le nombre de millisecondes écoulées dans la seconde. La valeur par défaut est 0.

Valeur de retour

Invoquer new Date() (le constructeur Date()) renvoie un objet Date. Si le constructeur est appelé avec une chaîne de caractères invalide pour une date, il renvoie un objet Date dont la méthode toString() renverra la valeur littérale Invalid Date.

Invoquer la fonction Date() (sans le mot-clé new) renvoie une représentation en chaîne de caractères de la date et heure courante, de la même façon que new Date().toString(). Tout argument passé à la fonction Date() utilisée sans le mot-clé new sera ignoré, quelle que soit la valeur (invalide ou non) : sous cette forme, la valeur renvoyée sera toujours une représentation en chaîne de caractères de la date et de l'heure courante.

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 :

Note : L'analyse de chaîne de caractères représentant des dates avec le constructeur Date (ou Date.parse qui est équivalent à cet égard) est fortement déconseillée en raison des différences et incohérences entre les navigateurs.

js
let today = new Date();
let birthday = new Date("December 17, 1995 13:24:00");
let birthday = new Date("1995-12-17T13:24:00");
let birthday = new Date(1995, 11, 17); // les mois sont numérotés à partir de 0
let birthday = new Date(1995, 11, 17, 13, 24, 0);

Spécifications

Specification
ECMAScript Language Specification
# sec-date-constructor

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi