Retour à l'outil
*

Timestamp en JavaScript

Mis à jour : mai 2026

JavaScript stocke le temps en millisecondes depuis l'epoch Unix. C'est pratique, mais cela crée un décalage avec beaucoup d'APIs qui renvoient des timestamps en secondes.

Tester un timestamp JS

Gratuit · sans upload · calcul local

Obtenir le timestamp actuel

// Millisecondes, format natif JavaScript
Date.now()
new Date().getTime()

// Secondes, format Unix classique
Math.floor(Date.now() / 1000)

Convertir secondes et millisecondes

const tsSeconds = 1735689600;
const tsMs = 1735689600000;

const d1 = new Date(tsSeconds * 1000);
const d2 = new Date(tsMs);

console.log(d1.toISOString());
console.log(d2.toISOString());

La règle à retenir : entrée en secondes = multiplier par 1000. Sortie en secondes = diviser par 1000 et arrondir.

Formatter en français

const ts = 1735689600;
const date = new Date(ts * 1000);

const label = new Intl.DateTimeFormat('fr-FR', {
  timeZone: 'Europe/Paris',
  dateStyle: 'full',
  timeStyle: 'medium'
}).format(date);

console.log(label);

Piège ISO sans fuseau

new Date('2025-01-01T00:00:00Z') est explicite : le Z signifie UTC. new Date('2025-01-01T00:00:00') est interprété comme heure locale dans la plupart des environnements. Pour un timestamp fiable, indiquez toujours Z ou un offset comme +01:00.

Fonctions utilitaires

const nowSeconds = () => Math.floor(Date.now() / 1000);
const secondsToMs = seconds => seconds * 1000;
const msToSeconds = ms => Math.floor(ms / 1000);
const looksLikeMs = value => Math.abs(Number(value)) > 1e10;

Questions fréquentes

Date.now() renvoie-t-il des secondes ?

Non. Date.now() renvoie des millisecondes. Pour des secondes Unix, utilisez Math.floor(Date.now() / 1000).

Pourquoi new Date(timestamp) donne 1970 ?

Parce que le timestamp était en secondes et que JavaScript attend des millisecondes.

Intl.DateTimeFormat change-t-il le timestamp ?

Non. Il change uniquement l'affichage dans un fuseau et une locale.