javascript - 如何使用 MomentJS 查找两个 Unix 日期(以天为单位)之间的确切持续时间?

标签 javascript momentjs

我正在尝试使用 MomentJS 库找出两个日期之间的差异。但是,要求是使用 Unix 时间戳作为日期值。

目前我有以下代码,它返回不准确的值:

var start = 1536873321; // 13 September 2018
var end = 1537228800 ; // 18 September 2018

var diff = moment.unix(end).diff(moment.unix(start), 'days');
console.log(diff); //4 (expected 5, or 6 if last day is included)

是否有任何解决方案,或者更建议使用纯 JavaScript 以获得更精确的结果?

请参阅fiddle如果需要的话。

最佳答案

Moment 返回 4 天,因为这两个时间戳之间相隔不到 5 天。

start = 1536873321; // 13 September 2018 (9:15pm)
end = 1537228800 ; // 18 September 2018 (12:00am)

所以它们之间的确切时间是 4.114340277777778 天。

尝试

start = moment.unix(1536873321);
end = moment.unix(1537228800 );
var diff = Math.ceil(moment.duration(start.diff(end)).asDays());

关于javascript - 如何使用 MomentJS 查找两个 Unix 日期(以天为单位)之间的确切持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322274/

相关文章:

javascript - 使用 fullCalendar 控件获取所选时段的日期

javascript - 需要使用JS获取<a>标签的 "id"属性

javascript - sublime 文本的排版工具

javascript - 谷歌可视化 : how to remove a column from a DataTable

ruby-on-rails-3 - Date.js vs Moment.js(和服务器端格式)

javascript - 将十六进制字符串转换为 BYTE 数组 JS

javascript - Moment.js .isBefore 将日期与时区偏移量进行比较

javascript - 在 Node.JS 中输出用户时区时间戳的最佳方式

javascript - 将一组重叠的时间段合并到新的时间段中

javascript - fullCalendar:我在渲染 100 年之前的事件(0000 - 0099 年)时遇到问题(使用 ISO8601 格式)