Javascript unix时间戳和ISO时间之间的关系。为什么它们不平等?
我正在尝试获取2018年1月1日的时间戳Javascript unix时间戳和ISO时间之间的关系。为什么它们不平等?,javascript,momentjs,Javascript,Momentjs,我正在尝试获取2018年1月1日的时间戳 moment("01-01-2018","MM-DD-YYYY").unix() 从上面的语句中可以看出,1514745000。但当我尝试将其转换为ISOString时: moment.unix(1514745000).toISOString() 它可以归结为:2017-12-31T18:30:00.000Z 为什么会这样?为什么不等于2018-01-01T00:00:00.000Z 默认情况下,力矩以本地时间解析和显示 默认情况下,矩使用本地时间,
moment("01-01-2018","MM-DD-YYYY").unix()
从上面的语句中可以看出,1514745000
。但当我尝试将其转换为ISOString
时:
moment.unix(1514745000).toISOString()
它可以归结为:2017-12-31T18:30:00.000Z
为什么会这样?为什么不等于2018-01-01T00:00:00.000Z
默认情况下,力矩以本地时间解析和显示
默认情况下,矩使用本地时间,而输出为UTC:
请注意,.toISOString()
返回UTC时间戳,即使该时刻处于本地模式
如果要将“01-01-2018”
解析为UTC格式,请使用
以下示例显示本地模式和UTC模式下解析的输出差异:
//当地时间2018年1月1日:1514761200(UTC+01:00)
console.log(瞬间(“01-01-2018”,“MM-DD-YYYY”).unix()
//UTC 01-01-2018:1514764800
console.log(矩.utc(“01-01-2018”,“MM-DD-YYYY”).unix())
那么生成的时间戳也必须是UTC?我已经编辑了我的答案,添加了一个片段和一些链接,现在请告诉我是否更清晰。