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.
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.