javascript - 如何计算 JavaScript 中两个日期的日、月和年差异?

标签 javascript date datetime time

<分区>

谁能解释一下毫秒的工作原理和一些文档。我正在尝试计算,给定两个日期,这两个日期之间的年、日和 差是多少。理想情况下,我想四舍五入这个数字,所以没有小数。这在没有任何库的 JavaScript 中可能吗?

到目前为止,这是我的代码。我尝试过 1000 * 60/365 和一些组合,但我不知道它们代表什么 - 我也可能会尝试几个小时。

        var date1 = new Date(a); // 01/03/2008
        var date2 = new Date(b); // 22/03/2016
        var timeDiff = Math.abs(date2.getTime() - date1.getTime());
        var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
        var diffMonths = Math.ceil(timeDiff / (12)); 
        var diffYears = Math.ceil(timeDiff / (365)); 
        console.log(diffDays);
        console.log(diffMonths);
        console.log(diffYears);

我设法算出了天差,但我仍然没有完全理解它。

最佳答案

由于语言处理日期时间的方式,这对于纯 JavaScript 来说是一个困难的想法。您最好的解决方案是使用 MomentJS 库。它非常时尚、文档齐全且易于使用。

MomentJS

更新

我正在为 future 来自 Moment.JS 的人们使用这样的解决方案

var bornDate = moment([1990, 2, 12]); // get YYYY MM DD from datepicker etc
var userChoiceDate = moment([2016, 3, 22]);
var diffYears = bornDate.diff(userChoiceDate, 'years');
var diffDays = bornDate.diff(userChoiceDate, 'days');
console.log(diffYears);
console.log(diffDays);

关于javascript - 如何计算 JavaScript 中两个日期的日、月和年差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36164601/

相关文章:

javascript - 使用 Javascript 计算列表项的长度

2列上的Mysql顺序

javascript - 在 Node 中获取文件创建日期

c++ - 将 QString 日期(RFC 822 格式)转换为另一种基于文化的 QString 格式

javascript - 如何每 30 秒加载页面的一部分

javascript - 如何使用 jQuery 无限循环播放音频文件

JavaScript 获取 NaN :NaN:NaN

python - Pandas - 从索引中提取月份和年份

javascript - 如何在 Highcharts 中显示日期时间轴的所有数据标签

javascript - 尝试使用列样式和每列 4 个 div,但样式不正确