Javascript JS-为什么差异不是全年格式
对于下面的JavaScript,我希望输出为1,但事实并非如此,有什么解释吗Javascript JS-为什么差异不是全年格式,javascript,momentjs,Javascript,Momentjs,对于下面的JavaScript,我希望输出为1,但事实并非如此,有什么解释吗 var startDate = moment('2018-01-01'); var endDate = moment('2018-12-31'); moment.duration(endDate.diff(startDate)).asYears() 0.9965981505438167 什么开始和结束日期会给出一整年?这是因为diff以毫秒为单位给出差值,然后以年为单位重新计算,得出0.99。。价值观 为了在年数
var startDate = moment('2018-01-01');
var endDate = moment('2018-12-31');
moment.duration(endDate.diff(startDate)).asYears()
0.9965981505438167
什么开始和结束日期会给出一整年?这是因为diff以毫秒为单位给出差值,然后以年为单位重新计算,得出0.99。。价值观 为了在年数上有所不同,您可以这样做:
endDate.diff(startDate, 'year');
你会得到想要的1个试试这个,也许你能理解
var startDate = moment("2018-01-01").startOf("day");
var endDate = moment("2019-01-01").startOf("day");
// var endDate = moment("2018-12-31").startOf("day"); try this also.
console.log(startDate);
console.log(endDate);
console.log("--------------");
console.log(endDate.diff(startDate, "days"));
console.log(endDate.diff(startDate, "years"));
console.log("--------------");
开始
'2018-01-01'
和结束'2019-01-01'
?@VLAZ还没有满一年-0.9993360575508053是的,刚刚尝试过。奇怪的我用startDate=moment('2018-01-01T10:00:00')
和endDate=moment('2019-01-01T15:49:12')
度过了整整一年。那么,时刻算不算一年中所有的时间?包括我们在夏令时使用“隐藏”的那些?我没有仔细检查,但是5:49应该很接近每年额外的时间。我们每四年会多出一天,但如果是一个世纪,就不会多出一天,除非是一个可以被400整除的世纪。