为什么此刻diff函数返回0而不是1

时间:2020-10-06 21:49:55

标签: javascript date momentjs

返回0个月,但这应该是1个月,因为从我看到的文档中,包含在内的日期是从一个月到下个月算作一个月。

console.log(moment('2020-11-06T00:00:00+00:00').diff(moment('2020-10-06T21:22:21.2976559+00:00'), 'months'))

3 个答案:

答案 0 :(得分:0)

我在他们的文档https://momentjs.com/docs/

中发现了这一点

注意:瞬间是在评估时创建的,因此moment()。diff(moment())可能并不总是返回0。有关更多详细信息,请参见GitHub问题。

GitHub链接为: https://github.com/moment/moment/issues/5195

答案 1 :(得分:0)

看看你在比较什么。

2020-10-06T21:22:21.2976559+00:00
2020-11-06T00:00:00+00:00

第二个日期的时间是00:00。第一次约会的时间是21:22:21。您只剩下一个月的时间。

标准化时间,它将起作用。

console.log(moment('2020-11-06T00:00:00').diff(moment('2020-10-06T00:00:00'), 'months'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.0/moment.min.js"></script>

答案 2 :(得分:-2)

首先,不建议使用力矩,不建议在新项目https://momentjs.com/docs/#/-project-status/

中使用它

每月/每年差异讨论可以在这里查看:https://github.com/moment/moment/pull/571

如果删除时间信息,它将返回1,如预期:console.log(moment('2020-11-06').diff(moment('2020-10-06'), 'months'));。在我看来,这似乎是个错误,但我想它只是希望瞬间发挥作用的方式