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!