Sottrai le date in JavaScript
-
Usa la funzione
getTime()
per sottrarre Datetime in JavaScript -
Usa la funzione
Math.abs()
per sottrarre Datetime in JavaScript -
Utilizzare la funzione
Date.UTC()
per convertire le date in UTC
Questo articolo spiega come sottrarre due date in JavaScript.
Usa la funzione getTime()
per sottrarre Datetime in JavaScript
Il primo passo sarebbe definire le tue due date usando la funzione incorporata nuova data()
. Per ottenere la differenza tra loro in giorni, sottrarre i due utilizzando la funzione getTime()
, che li converte in valori numerici. È possibile stampare il risultato in giorni o convertirlo in ore, minuti, secondi o millisecondi secondo necessità. Di seguito è riportato il codice di esempio:
var day1 = new Date('08/25/2020');
var day2 = new Date('12/25/2021');
var difference = day2.getTime() - day1.getTime();
document.write(difference);
Produzione:
42080400000
Usa la funzione Math.abs()
per sottrarre Datetime in JavaScript
Questa procedura è simile alla prima tranne per il fatto che restituisce il valore assoluto. Dovrai definire le due date, quindi sottrarre le due variabili utilizzando la funzione Math.abs()
come segue:
var day1 = new Date('08/25/2020');
var day2 = new Date('08/25/2021');
var difference = Math.abs(day2 - day1);
days = difference / (1000 * 3600 * 24)
console.log(days)
Produzione:
365
Nota che la funzione Math.abs()
fa distinzione tra maiuscole e minuscole e non funzionerà se scritta diversamente.
Utilizzare la funzione Date.UTC()
per convertire le date in UTC
Laddove le date in questione coprono un cambio di ora legale, le soluzioni di cui sopra potrebbero rivelarsi un po’ problematiche. Il modo migliore per aggirare questo problema sarebbe convertire le date in UTC per eliminare prima l’ora legale e poi ottenere la differenza tra di loro. Dovremo creare una funzione con due oggetti per le due date, ovvero:
function difference(date1, date2) {
const date1utc =
Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());
const date2utc =
Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());
day = 1000 * 60 * 60 * 24;
return (date2utc - date1utc) / day
}
const date1 = new Date('2020-12-10'), date2 = new Date('2021-10-31'),
time_difference = difference(date1, date2)
console.log(time_difference)
Produzione:
325