Moment JS 无法识别 ISO 8601 日期

Moment JS not recognising ISO 8601 date

所以我有两个日期,我想得到它们的区别:

console.log(new Date(Date.now()).toISOString()); //2017-07-07T16:55:30.471Z
console.log(asset.past[i].date); //2017-07-06T20:29:00.670Z
var a = moment([new Date(Date.now()).toISOString()]);
console.log(a); //Moment Date:Sun Jan 01 2017 00:00:00 GMT+0000
var b = moment([asset.past[i].date]);
console.log(b); //Moment Date:Sun Jan 01 2017 00:00:00 GMT+0000
console.log(a.diff(b, 'seconds', true)); //0
console.log(a.diff(b, 'days', true)); //0
console.log(a.diff(b, 'months', true)); //0

之后我将控制台日志的输出作为评论。我假设它无法将日期格式识别为 ISO 8601,并且默认为 Sun Jan 01 2017 00:00:00 GMT+0000。无论哪种方式,知道如何解决它吗?

干杯,Ed.

为什么要将数组传递给 moment 构造函数?您希望 a 实际上是什么,只是当前日期?如果是这样就做 moment()。如果你想传入一个字符串,就像你在第 1 行正确做的那样。

这只是我删除方括号的 2 个修复。同样,您只需执行 moment() 即可获得指向现在的时刻。

// var a = moment(new Date(Date.now()).toISOString());
var a = moment();
var b = moment(asset.past[i].date);