Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Как высчитывать разницу во времени, учитывая часовые зоны?

#javascript #время #timezone #momentjs


Мне нужно сделать таймер обратного отсчета до какого-то события при помощи библиотеки
MomentJS.

Сервер мне присылает время (назовем его eventTime), до которого должен идти отсчет,
я выясняю разницу между текущим и вывожу в HTML. Здесь все просто. 
Проблема в том, что сервер присылает время по МСК и преобразование eventTime = moment.utc(time)
в функции таймера мне ничего не дает.

Как мне высчитывать разницу во времени, учитывая часовые зоны? 
    


Ответы

Ответ 1



В идеале конечно получать от сервера время в UTC. Но если это невозможно, преобразовывайте из московского времени с помощью moment timezone: var t = moment.tz("2013-11-18 11:55", 'Europe/Moscow'); И не забывайте обновлять библиотеку moment timezone каждый раз, когда вступит в силу новый закон о летнем времени в зоне 'Europe/Moscow' (и ребята из moment timezone обновят сборку). Альтернативный вариант - присылать с сервера сразу оставшееся время (например в секундах) до нужного события. В этом случае будет не важно, какое время у клиента (в том числе, если оно вообще неправильно выставлено, как иногда бывает когда пытаются продлить триальные версии некоторых программ).

Комментариев нет:

Отправить комментарий