使用momentjs diff函数将今天和明天的日期(4月17日和18日)与当前时刻(现在是4月17日,对我来说)进行比较时,天计算都是0.当比较的日期相近时,来自momentjs diff的意外结果
这是为什么,以及如何获得更明智的结果?
function daysRemaining(eventdate) {
var eventdatemoment = moment(eventdate);
var todaysdate = moment();
return eventdatemoment.diff(todaysdate, 'days');
}
console.log(daysRemaining('2015-04-16'));
console.log(daysRemaining('2015-04-17'));
console.log(daysRemaining('2015-04-18'));
console.log(daysRemaining('2015-04-19'));
给出结果:
-1
0
0
1
http://jsfiddle.net/ue110atu/1/
我看0,0,1,2,你在哪里位于何处?说得通。今天不到一天(显然),明天午夜不到二十四小时。 –
不确定它是否与您的问题有关,但请注意[diff](http://momentjs.com/docs/#/displaying/difference/)返回自Moment.js 2.0.0以来的舍入数。如果你想要一个浮点数,把它作为第三个参数传给'true'。 – aug
@ChristianHain我确实需要一个整数,但是我想要1作为结果,直到事件发生前一晚的晚上11:59。也许如果我将事件日期设置为11:59 pm时,那么呢?我不认为位置应该重要,但我在新西兰与时区GMT + 12 –