Определение разницы дат в годах, месяцах и днях в JavaScript
Определение разницы между двумя датами в годах, месяцах и днях может быть сложным в JavaScript из-за несоответствий в решениях, которые обеспечивают различия только в одной единице (годы, месяцы или дни) или неточностей в вычисления.
Вот более комплексное решение, которое учитывает обычные и високосные годы, а также точную разницу в днях между месяцами:
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
Это решение точно вычисляет разницу между двумя датами путем преобразования разницы в миллисекундах в дни, а затем дальнейшего получения месяцев и лет из всего дней.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3