我使用 moment.js 已经有一段时间了,它使日期操作变得更加容易,但是我有一个失败的特定案例,我不明白为什么。
在计算今天(2013 年 10 月 31 日)和 2014 年 2 月 1 日之间的差异时,月份差异返回为 2,尽管两个日期之间有 3 个完整的月份和 1 天。
10 月 31 日和 1 月 31 日之间的差异工作正常:3 个月零天。
var mStartDate = moment([ periodStartDate.getFullYear(), periodStartDate.getMonth(), periodStartDate.getDate() ]);
var mTermDate = moment([ someDate.getFullYear(), someDate.getMonth(), someDate.getDate() ]);
console.log('periodStartDate: ' + periodStartDate);
console.log('someDate: ' + someDate);
// Years
var yearsDiff = mTermDate.diff(mStartDate, 'years');
// Months
var monthsDiff = mTermDate.diff(mStartDate, 'months', true);
控制台记录以下内容:
periodStartDate: Thu Oct 31 2013 11:13:51 GMT+0000 (GMT)
someDate: Sat Feb 01 2014 11:13:51 GMT+0000 (GMT)
monthsDiff: 2
如果我将 true 作为不舍入的布尔值传递,则月份差异为
monthsDiff: 2.983050847457627
这只是 Moment.js.diff() 中的一个错误吗?我的其他每个测试用例都成功通过。