【发布时间】:2018-09-22 12:52:30
【问题描述】:
过去,使用 unix 时间(根据定义是从 UTC 的角度来看)在解析和/或转换服务器之间的时间时从未造成差异。但是,我遇到了相当意外的行为,我似乎无法终生调试。
这实际上是在两台服务器上生产和预期的
let present = moment('2018.09.20', 'YYYY.MM.DD').tz('America/Toronto').toISOString()
--> '2018-09-20T04:00:00.000Z'
let utc_present = moment('2018.09.20', 'YYYY.MM.DD').tz('UTC').toISOString()
--> '2018-09-20T04:00:00.000Z'
UNIX 时间的意外行为
但是...如果我要在服务器上计算 unix 时间,使用完全相同的日期输入,我得到 1537401600000 而不是预期的 1537416000000,这是 完全 4休息时间。我想服务器时间可能会出现问题,但我的印象是显式转换为 unix 可以解决这个问题。
打印下面的 unix 等效项以供参考,取自其中一个服务器。
let unix_present = moment('2018.09.20', 'YYYY.MM.DD').tz('America/Toronto').unix()*1000
--> 1537416000000
let unix_present = moment('2018.09.20', 'YYYY.MM.DD').tz('UTC').unix()*1000
--> 1537416000000
【问题讨论】: