”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用 JavaScript 准确计算两个日期之间的年、月、日差异?

如何使用 JavaScript 准确计算两个日期之间的年、月、日差异?

发布于2024-12-11
浏览:381

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