Temporal

JavaScript 🟡 Mid

Définition

API de dates et heures conçue pour remplacer Date : objets immuables, fuseaux horaires explicites, précision à la nanoseconde, calendriers multiples. La proposition est au Stage 4 et figure dans la liste TC39 des propositions attendues pour ES2027. Elle est livrée dans Firefox 139 (27 mai 2025), Chrome 144 (13 janvier 2026) et Node.js 26 (5 mai 2026) ; Safari est encore en développement.

Analogie

Un agenda qui sait qu'un rendez-vous à 9 h à Paris n'est pas à 9 h à Tokyo, au lieu d'une simple horloge murale.

Exemple de code

// Node 26+, Chrome 144+, Firefox 139+
const maintenant = Temporal.Now.instant();
const date = Temporal.PlainDate.from('2026-09-27');
const rdv = date.toPlainDateTime('14:30')
  .toZonedDateTime('Europe/Paris');
const dans30j = rdv.add({ days: 30 });   // immuable : nouvel objet
const duree = rdv.until(dans30j);         // Temporal.Duration
console.log(duree.days);                  // 30

Cas d'usage

Réservations, facturation, planification multi-fuseaux : partout où Date et ses décalages implicites causent des bugs.

Anti-pattern

Mélanger Temporal et Date dans une même logique métier : convertir une seule fois aux frontières (toTemporalInstant / epochMilliseconds).
#core#ES2027#node26#interview

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre