Dev · 2 min de lecture ·
Timestamps Unix : secondes ou millisecondes ?
Le bug des 13 chiffres qui part en production chaque semaine, et une règle toute simple pour distinguer les deux unités.

JavaScript compte en millisecondes, la plupart des backends en secondes. Confondez les deux et vos dates atterrissent en janvier 1970, ou des dizaines de milliers d’années dans le futur.
Comptez les chiffres
Un timestamp actuel en secondes compte 10 chiffres (1790000000 correspond au 21 septembre 2026). Le même instant compte 13 chiffres en millisecondes, 16 en microsecondes et 19 en nanosecondes.
La règle
Si la valeur absolue dépasse 10¹², ce sont des millisecondes ; sinon, traitez-la comme des secondes. La règle vaut pour tout timestamp en millisecondes postérieur à septembre 2001 et tout timestamp en secondes antérieur à l’an 33658.
const ms = Math.abs(n) > 1e12 ? n : n * 1000;
Choisissez l’unité explicitement
Le convertisseur de timestamps de 4Dev ne devine pas : "Unix Timestamp" signifie secondes et "Unix Timestamp (ms)" millisecondes, à côté de variantes en microsecondes et nanosecondes. Il propose 33 formats au total, dont ISO 8601, RFC 2822, SQL DATETIME et les dates série d’Excel.