Documentation développeur
JavaScript
Mis à jour le 18 septembre 2026

Timestamp Unix & Époque en JavaScript

Maîtrisez la génération, l'analyse, la conversion et le formatage des timestamps Unix avec fuseaux horaires en JavaScript.

Un timestamp Unix représente le nombre total de secondes (ou millisecondes) écoulées depuis l'époque Unix : le 1er janvier 1970 à 00:00:00 UTC. En JavaScript, bien distinguer les secondes des millisecondes est indispensable lors d'échanges avec des API externes.

Démarrage rapide#

En JavaScript, Date.now() renvoie l'heure actuelle en millisecondes :

JavaScript
1// Timestamp actuel en millisecondes (13 chiffres)2const timestampMs = Date.now();3console.log("Millisecondes :", timestampMs);45// Timestamp classique en secondes (10 chiffres)6const timestampSec = Math.floor(Date.now() / );7console.log("Secondes :", timestampSec);

Convertir un Timestamp en chaîne ISO 8601#

Pour transformer un timestamp numérique en date ISO lisible, passez les millisecondes au constructeur Date :

JavaScript
1const secondesEpoch = ;23// Multipliez par 1000 si votre valeur est en secondes !4const date = new Date(secondesEpoch * );56console.log(date.toISOString());7// Résultat : "2024-09-18T22:53:20.000Z"

Formater avec les fuseaux horaires via Intl#

Les objets Date sont stockés en UTC. Utilisez Intl.DateTimeFormat pour afficher la date dans un fuseau horaire précis :

JavaScript
1const timestampMs = Date.now();23const formateur = new Intl.DateTimeFormat("fr-FR", {4  timeZone: "Europe/Paris",5  year: "numeric",6  month: "long",7  day: "numeric",8  hour: "2-digit",9  minute: "2-digit",10  second: "2-digit",11  timeZoneName: "short",12});1314console.log(formateur.format(new Date(timestampMs)));15// Résultat : "18 septembre 2026 à 23:30:00 UTC+2"

Détection automatique Secondes vs Millisecondes#

Les API Python, Go ou PHP renvoient généralement des timestamps à 10 chiffres (secondes), tandis que JavaScript utilise 13 chiffres (millisecondes) :

JavaScript
1function normaliserEnMillisecondes(valeur) {2  // En dessous de 100 milliards, il s'agit de secondes3  if (valeur < ) {4    return valeur * ;5  }6  return valeur;7}

Bonnes pratiques#

  1. Nommez explicitement vos variables : Utilisez timestampSec ou timestampMs pour éviter toute confusion de facteur 1000.
  2. Stockez toujours en UTC : Conservez les timestamps bruts dans vos bases de données pour prévenir les ambiguïtés d'heure d'été/d'hiver.
  3. Utilisez BigInt pour les microsecondes : Pour les précisions élevées, exploitez process.hrtime.bigint().

Références#

Implémenter Unix Timestamp dans d'autres langages :