Soustraire des dates en JavaScript

Valentine Kagwiria 12 octobre 2023
  1. Utilisez la fonction getTime() pour soustraire la date et l’heure en JavaScript
  2. Utilisez la fonction Math.abs() pour soustraire la date et l’heure en JavaScript
  3. Utilisez la fonction Date.UTC() pour convertir les dates en UTC
Soustraire des dates en JavaScript

Cet article explique comment soustraire deux dates en JavaScript.

Utilisez la fonction getTime() pour soustraire la date et l’heure en JavaScript

La première étape consiste à définir vos deux dates à l’aide de la fonction intégrée new Date(). Pour obtenir la différence entre elles en jours, soustrayez les deux en utilisant la fonction getTime(), qui les convertit en valeurs numériques. Vous pouvez imprimer le résultat en jours ou le convertir en heures, minutes, secondes ou millisecondes, selon vos besoins. Vous trouverez ci-dessous un exemple de code :

var day1 = new Date('08/25/2020');
var day2 = new Date('12/25/2021');

var difference = day2.getTime() - day1.getTime();

document.write(difference);

Production :

42080400000

Utilisez la fonction Math.abs() pour soustraire la date et l’heure en JavaScript

Cette procédure est similaire à la première sauf qu’elle retourne la valeur absolue. Vous devrez définir les deux dates puis soustraire les deux variables en utilisant la fonction Math.abs() comme suit :

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)

Production :

365

Notez que la fonction Math.abs() est sensible à la casse et ne fonctionnera pas si elle est écrite différemment.

Utilisez la fonction Date.UTC() pour convertir les dates en UTC

Lorsque les dates en question couvrent un changement d’heure d’été, les solutions ci-dessus peuvent s’avérer un peu problématiques. La meilleure façon de contourner ce problème serait de convertir les dates en UTC pour se débarrasser de l’heure d’été, puis de calculer la différence entre les deux. Nous devrons créer une fonction avec deux objets pour les deux dates, c’est-à-dire:

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)

Production :

325

Article connexe - JavaScript DateTime