В прошлом использование времени 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