«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу точно рассчитать разницу между двумя датами в годах, месяцах и днях с помощью JavaScript?

Как я могу точно рассчитать разницу между двумя датами в годах, месяцах и днях с помощью JavaScript?

Опубликовано 11 декабря 2024 г.
Просматривать:480

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

Определение разницы дат в годах, месяцах и днях в 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