Maison >interface Web >js tutoriel >Comment puis-je calculer avec précision la différence entre deux dates en années, mois et jours à l'aide de JavaScript ?

Comment puis-je calculer avec précision la différence entre deux dates en années, mois et jours à l'aide de JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-02 12:53:16935parcourir

How Can I Accurately Calculate the Difference Between Two Dates in Years, Months, and Days Using JavaScript?

Détermination des différences de dates en années, mois et jours en JavaScript

Détermination de la différence entre deux dates en années, mois et jours peut être difficile en JavaScript en raison d'incohérences dans les solutions qui ne fournissent des différences que dans une seule unité (années, mois ou jours) ou d'inexactitudes dans calculs.

Voici une solution plus complète qui prend en compte les années communes et bissextiles ainsi que la différence exacte en jours entre les mois :

today = new Date();
past = new Date(2010, 05, 01); // Equivalent to June 1, 2010

function calcDate(date1, date2) {
  // Calculate the difference in milliseconds
  var diff = Math.floor(date1.getTime() - date2.getTime());

  // Convert milliseconds to days
  var day = 1000 * 60 * 60 * 24;
  var days = Math.floor(diff / day);

  // Calculate months and years from days
  var months = Math.floor(days / 31);
  var years = Math.floor(months / 12);

  // Format the message
  var message = date2.toDateString();
  message += " was ";
  message += days + " days ";
  message += months + " months ";
  message += years + " years ago \n";

  return message;
}

console.log(calcDate(today, past));
// Output: Tue Jun 01 2010 was 1143 days 36 months 3 years ago

Cette solution calcule avec précision la différence entre deux dates en convertissant la différence en millisecondes en jours, puis en déduisant ensuite les mois et les années du nombre total de jours.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn