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);
所以我有两个日期,我想得到它们的区别:
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);