Millisecondi in data
Converti i millisecondi in una data leggibile. Inserisci il timestamp in millisecondi (es. 1704067200000).
Sommare esattamente 24 ore in millisecondi ti porta alle 13:00, non alle 12:00
Un giorno è 86.400.000 millisecondi, tranne nei due giorni all'anno in cui non lo è. Sommalo a mezzogiorno del cambio d'ora di primavera e l'orologio segna le 13:00; fallo in autunno e segna le 11:00. L'aritmetica è corretta: un giorno di calendario e 24 ore sono semplicemente cose diverse due volte l'anno.
Come funziona
- Converte marche temporali in millisecondi in date e viceversa, in UTC e in ora locale.
- Mostra la scomposizione in unità, dato che i valori in millisecondi sono difficili da leggere a colpo d'occhio.
- Segnala il limite oltre il quale una Date smette di essere valida, un guasto che avviene in silenzio e non con clamore.
1 secondo = 1.000 ms 1 ora = 3.600.000 ms 1 minuto = 60.000 ms 1 giorno = 86.400.000 ms intervallo di Date in JavaScript = ±8.640.000.000.000.000 ms → +275760-09-13 e −271821-04-20 un millisecondo oltre → Invalid Date
Esempio pratico
Sommare un giorno in millisecondi a ciascun cambio d'ora, più il limite dell'intervallo.
- inizio 28 marzo 2026, 12:00 — somma 86.400.000 ms → 29 marzo, 13:00
- inizio 24 ottobre 2026, 12:00 — somma 86.400.000 ms → 25 ottobre, 11:00
- 8.640.000.000.000.000 ms → +275760-09-13, il massimo
- un millisecondo in più → Invalid Date
- quella Invalid Date resta un oggetto, e getTime() restituisce NaN
Nessuno dei due cambi ti riporta alle 12:00, perché il giorno di calendario è durato 23 o 25 ore. E il guasto sull'intervallo è peggiore di un'eccezione: Invalid Date supera instanceof Date, quindi prosegue e trasforma in NaN ogni calcolo successivo.
Come leggere il risultato
- Usa l'aritmetica di calendario quando intendi «domani alla stessa ora» e quella in millisecondi quando intendi «fra 24 ore». Coincidono per 363 giorni all'anno, ed è esattamente per questo che la discrepanza viene colta così di rado nei test.
- Invalid Date è la modalità di guasto pericolosa proprio perché non è un errore. È un oggetto Date il cui getTime() vale NaN, e NaN si propaga in silenzio attraverso ogni operazione successiva finché qualcosa molto più a valle non compare vuoto o a zero.
- Il limite dell'intervallo è ±100.000.000 giorni dall'epoca, abbastanza generoso perché raggiungerlo significhi quasi sempre una moltiplicazione sbagliata e non una data reale: quasi sempre secondi passati dove ci si aspettavano millisecondi, gonfiando il valore di mille volte.
- I millisecondi stanno comodamente nell'intervallo degli interi sicuri, quindi a differenza dei nanosecondi possono vivere in un numero ordinario senza perdere cifre. È la ragione pratica per cui la maggior parte delle API si è fermata ai millisecondi e non a qualcosa di più fine.
Domande frequenti
- Perché la mia data è sfasata di un'ora dopo aver aggiunto un giorno?
- Hai attraversato un cambio d'ora. Sommare 86.400.000 ms aggiunge esattamente 24 ore, ma quel giorno di calendario ne aveva 23 o 25. Se volevi la stessa ora dell'orologio, aggiungi un giorno con l'aritmetica di calendario anziché con un numero fisso di millisecondi.
- Che cosa significa Invalid Date?
- Il valore è caduto fuori da ±8.640.000.000.000.000 ms oppure non è stato possibile analizzarlo. Non è un'eccezione: è un oggetto Date il cui getTime() vale NaN, quindi continua a circolare nel tuo codice e trasforma in silenzio anche i calcoli successivi in NaN.