当使用momentjs diff函数将今天和明天的日期(4月17日和18日)与当前时刻(对我来说是4月17日)进行比较时,计算出的天数均为0。

为什么会这样?如何获得更明智的结果呢?

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/

最佳答案

function daysRemaining(eventdate) {
  var eventdatemoment = moment(eventdate);

  // Remove hours, minutes, seconds, etc. from today's date.
  var todaysdate = moment().startOf('day');

  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'));

关于javascript - 比较日期临近时,瞬间diff出乎意料的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29688098/

10-11 13:31