Moment JS不承认ISO 8601日期

时间:2017-07-07 17:19:13

标签: javascript node.js momentjs jsx iso8601

所以我有两个约会,我希望得到不同之处:

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,默认为2017年1月1日00:00:00 GMT + 0000。无论哪种方式,任何想法如何解决它?

干杯,Ed。

1 个答案:

答案 0 :(得分:2)

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

以下是我删除方括号的两个修正。同样,您可以moment()来获得指向现在的时刻。

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