преобразовать местную временную метку в UTC - PullRequest
0 голосов
/ 04 октября 2018

Мой сервер возвращает данные даты в виде временных меток местного часового пояса.

На стороне клиента я хочу отображать эти даты в виде локальных строк дат.Если я сделаю следующее, я получу неправильную дату («30.06.2014» вместо «01.07.2014»)

var ts = 1404172800;
new Date(1404172800*1000).toLocaleDateString()
>>>"6/30/2014" 

Чтобы предотвратить эту проблему, я должен преобразоватьвременная метка местного часового пояса, которую я получаю с сервера на временную метку UTC перед созданием объекта new Date().

Я прав?Каков наилучший способ добиться этого, который будет работать в большинстве браузеров?

Редактировать :

Я подтверждаю, что реальная дата в местном часовом поясе должна быть 7/01/ 2014.Это местное восточное время UTC -5 (-4).но объект new Date() считает, что это UTC, но это не так.Я полагаю, это потому, что дата возвращается в качестве временной метки без преобразования в UTC.

1 Ответ

0 голосов
/ 04 октября 2018

Разве это не так уже? Временные метки всегда в UTC .

Вы видите 30 июня, а не 1 июля, потому что, когда это событие произошло, в местном часовом поясе, оно все еще было30 июняНапример, для меня это отображается как 1 июля в IST.

enter image description here

Кроме того, эта временная метка представляет событие, которое произошло 1 июля 2014 года в00:00:00 по Гринвичу точно.Индия - это GMT + 05: 30, как вы можете видеть на скриншоте - так что если местный часовой пояс, даже если это GMT минус одна минута, это все равно будет 30 июня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...