首页 > 解决方案 > Moment .JS - 为什么差异不是全年格式

问题描述

对于以下 JavaScript,我期望输出为 1,但事实并非如此,有什么解释吗?

var startDate = moment('2018-01-01');
var endDate = moment('2018-12-31');

moment.duration(endDate.diff(startDate)).asYears()

0.9965981505438167

什么开始日期和结束日期会给出一整年?

标签: javascriptmomentjs

解决方案


这是因为 diff 以毫秒为单位为您提供差异,然后以年为单位重新计算,为您提供 0.99.. 值

为了获得不同的年份,您可以这样做:

endDate.diff(startDate, 'year');

你会得到想要的 1


推荐阅读