Javascript 瞬间js为iso时间戳返回错误格式的值

Javascript 瞬间js为iso时间戳返回错误格式的值,javascript,momentjs,Javascript,Momentjs,我正在将“2018-01-31T22:55:02.907Z”此时间戳传递给矩()函数,但它在格式化日期部分后返回错误的值 console.log(矩(“2018-01-31T22:55:02.907Z”).格式(“YYYY-MM-DD”) 这应该返回2018-01-31,但它返回的是2018-02-01 这样的话,每一天就增加一天。我怀疑存在基于时区的问题,但我无法解决。传递时间戳时,必须使用.utc,如下所示: 如果您这样做: console.log(moment("2018-01-31").

我正在将
“2018-01-31T22:55:02.907Z”
此时间戳传递给
矩()
函数,但它在格式化日期部分后返回错误的值

console.log(矩(“2018-01-31T22:55:02.907Z”).格式(“YYYY-MM-DD”)

这应该返回
2018-01-31
,但它返回的是
2018-02-01


这样的话,每一天就增加一天。我怀疑存在基于时区的问题,但我无法解决。

传递时间戳时,必须使用.utc,如下所示: 如果您这样做:

console.log(moment("2018-01-31").format('YYYY-MM-DD'));
它将为您提供所需的结果,但当您像现在这样传递时间戳时,您应该做的是:

console.log(moment.utc("2018-01-31T22:55:02.907Z").format('YYYY-MM-DD'));
您还可以看到它是如何工作的:

console.log(moment({ years:2018, months:0, date:31, hours:22, minutes:55, seconds:02, milliseconds:907}).format('YYYY-MM-DD'));
要传递时间戳,您应该再次检查文档。

这也可能是一个有用的链接:

传递时间戳时必须使用.utc,如下所示: 如果您这样做:

console.log(moment("2018-01-31").format('YYYY-MM-DD'));
它将为您提供所需的结果,但当您像现在这样传递时间戳时,您应该做的是:

console.log(moment.utc("2018-01-31T22:55:02.907Z").format('YYYY-MM-DD'));
您还可以看到它是如何工作的:

console.log(moment({ years:2018, months:0, date:31, hours:22, minutes:55, seconds:02, milliseconds:907}).format('YYYY-MM-DD'));
要传递时间戳,您应该再次检查文档。

这也可能是一个有用的链接: 您必须使用:

默认情况下,力矩以本地时间解析和显示

如果要以UTC格式解析或显示某个时刻,可以使用
moment.UTC()
而不是
moment()

console.log(矩(“2018-01-31T22:55:02.907Z”).格式(“YYYY-MM-DD”);
console.log(矩.utc(“2018-01-31T22:55:02.907Z”).格式(“YYYY-MM-DD”)
您必须使用:

默认情况下,力矩以本地时间解析和显示

如果要以UTC格式解析或显示某个时刻,可以使用
moment.UTC()
而不是
moment()

console.log(矩(“2018-01-31T22:55:02.907Z”).格式(“YYYY-MM-DD”);
console.log(矩.utc(“2018-01-31T22:55:02.907Z”).格式(“YYYY-MM-DD”)