То, что вы хотите, это нормализованное Datetime.Это может немного запутать, поскольку концепция часовых поясов является довольно произвольной конструкцией.
Мне нравится думать о значениях Datetime как «абсолютных» и «относительных».«Абсолютная» дата-время - это та, которая истинна независимо от того, в каком часовом поясе вы находитесь. Наиболее распространенным примером из них являются UTC (+000) и время UNIX (также известные как эпоха Unix, POSIX Time или Unix Timestampe).
UTC довольно очевидно.Это текущее время в +000 часовых поясов.Время UNIX немного интереснее.Он представляет количество секунд, прошедших с 1 января 1970 года.
Вы должны всегда хранить данные, как на клиенте, так и на сервере, как «абсолютное» время.Я предпочитаю время UNIX, поскольку оно представлено в виде единого целого числа (красивое и чистое).
moment.js
делает это за вас.Когда вы создаете экземпляр своего moment
объекта, вы можете использовать:
var date = moment.utc(utcString)
или для Unix Time
var date = moment.unix(unixInt)
Затем вы можетеиспользуйте этот объект для отображения даты в любой форме:
console.log(date.tz.("America/Toronto"))