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

Emi*_*nov 6 javascript momentjs

我正在尝试使用 MomentJS 库查找 2 个日期之间的差异。然而,要求是使用 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)
Run Code Online (Sandbox Code Playgroud)

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

如果需要请查看小提琴。

小智 6

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

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

因此,它们之间的确切时间(以天为单位)是 4.114340277777778 天。

尝试

start = moment.unix(1536873321);
end = moment.unix(1537228800 );
var diff = Math.ceil(moment.duration(start.diff(end)).asDays());
Run Code Online (Sandbox Code Playgroud)