#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 обновят сборку). Альтернативный вариант - присылать с сервера сразу оставшееся время (например в секундах) до нужного события. В этом случае будет не важно, какое время у клиента (в том числе, если оно вообще неправильно выставлено, как иногда бывает когда пытаются продлить триальные версии некоторых программ).
Комментариев нет:
Отправить комментарий