Sottrai le date in JavaScript

Valentine Kagwiria 12 ottobre 2023
  1. Usa la funzione getTime() per sottrarre Datetime in JavaScript
  2. Usa la funzione Math.abs() per sottrarre Datetime in JavaScript
  3. Utilizzare la funzione Date.UTC() per convertire le date in UTC
Sottrai le date in JavaScript

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

Articolo correlato - JavaScript DateTime