Date

Un objet représentant un instant précis, avec des méthodes pour lire et modifier la date et l’heure.

Renvoie
Un nouvel objet Date.
Sur cette page

Exemple

#
JavaScript
const exam = new Date(Date.UTC(2026, 8, 28, 10, 30))

console.log(exam)
console.log(exam.getUTCFullYear(), exam.getUTCMonth(), exam.getUTCDate())
console.log(exam.getUTCDay(), exam.getUTCHours())
Console
2026-09-28T10:30:00.000Z
2026 8 28
1 10

Le mois 8 correspond à septembre, car les mois sont comptés à partir de zéro. Le jour de la semaine 1 signifie lundi (dimanche vaut 0).

Définition et utilisation

#

Un objet Date stocke un instant sous la forme du nombre de millisecondes écoulées depuis le 1er janvier 1970 (UTC). new Date() sans argument renvoie l’instant actuel, et Date.now() donne directement ce nombre de millisecondes, pratique pour mesurer un temps.

Vous créez une date à partir d’un nombre de millisecondes, d’une chaîne au format ISO ("2026-09-28T10:30:00Z") ou de composants séparés : new Date(year, month, day, hour, minute). Attention : les mois sont comptés à partir de zéro, donc janvier vaut 0 et décembre vaut 11.

Les méthodes getFullYear(), getMonth(), getDate(), getDay() ou getHours() renvoient les composants dans le fuseau horaire de l’utilisateur, et leurs équivalents avec UTC dans le nom, comme getUTCHours(), dans le temps universel. Pour afficher des dates dans une forme lisible et locale, utilisez toLocaleDateString() ou Intl.DateTimeFormat.

Les objets Date sont modifiables : les méthodes set...() modifient l’objet existant. Vous calculez la différence entre deux dates en les soustrayant, car le résultat est un nombre de millisecondes.

Syntaxe

#
Syntaxe
new Date()
new Date(milliseconds)
new Date(dateString)
new Date(year, monthIndex, day, hours, minutes, seconds)

Date.now()
Date.UTC(year, monthIndex, day, hours, minutes)

Paramètres

#
  • milliseconds

    nombre

    Le nombre de millisecondes depuis le 1er janvier 1970 (UTC).
  • dateString

    chaîne de caractères

    Une date au format ISO, par ex. "2026-09-28" ou "2026-09-28T10:30:00Z".
  • year, monthIndex, day…

    nombres

    Les composants de la date dans le fuseau horaire local. monthIndex prend des valeurs de 0 (janvier) à 11 (décembre).

Plus d’exemples

#
Les mois comptés à partir de zéro
JavaScript
const start = new Date(2026, 0, 1)
const oops = new Date(2026, 1, 1)

console.log(start.getMonth(), start.getDate())
console.log(oops.toLocaleDateString('fr-FR', { month: 'long' }))
Console
0 1
février
Différence entre deux dates en jours
JavaScript
const start = new Date('2026-09-01T00:00:00Z')
const end = new Date('2026-09-28T00:00:00Z')

const days = (end - start) / (1000 * 60 * 60 * 24)
console.log(days)
Console
27
Une échéance une semaine plus tard
JavaScript
const deadline = new Date(Date.UTC(2026, 8, 28))
deadline.setUTCDate(deadline.getUTCDate() + 7)

console.log(deadline)
Console
2026-10-05T00:00:00.000Z

Les méthodes set...() reportent automatiquement les jours excédentaires sur le mois suivant, donc le 28 septembre plus 7 jours donne le 5 octobre.

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Rappelez-vous que les mois sont comptés à partir de zéro : new Date(2026, 0, 1) correspond au 1er janvier, pas au 1er février.
  • Enregistrez et transmettez les dates au format ISO (toISOString()), et ne convertissez vers une forme locale qu’au moment de l’affichage.
  • Une chaîne avec seulement une date, par ex. "2026-09-28", est traitée comme un temps UTC, tandis qu’une chaîne avec une heure sans Z à la fin est traitée comme un temps local. C’est une cause fréquente de décalages de plusieurs heures.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.