Comments 10
Мы тоже сталкивались с проблемой временных зон в браузерах, но по такому пути (автоматическое определение) не пошли. Точнее, авто-определение можно использовать для авто-подкидки пользователю временной зоны в форму ввода, но все же пусть лучше он сам окончательно ее подтверждает при регистрации (или тогда, когда это нужно).
Дело в том, что де-факто у простых юзеров временные зоны настроены не всегда правильно. У некоторых - как попало. Плюс многие из них перемещаются по миру со своими ноутбуками, не меняя временную зону, но переводя время на локальное. Если у них не обновлена ОС (не доставлены специальные fixes), то правила перехода могут не соответствовать действительности, так было недавно, когда USA поменяли правила перехода. В некоторых browser-ах нужные функции JS могут глючить (даже при правильной настройке времени в операционке). В общем, полный беспредел, как обычно. Особенно это было заметно, когда в прошлом году в USA поменяли правила перехода на летнее время.
Поэтому программистами нашей компании была написана своя реализация математики исчисления дат, а временная зона авто-подкидывалась, но не авто-определялась вообще без участия пользователя.
Дело в том, что де-факто у простых юзеров временные зоны настроены не всегда правильно. У некоторых - как попало. Плюс многие из них перемещаются по миру со своими ноутбуками, не меняя временную зону, но переводя время на локальное. Если у них не обновлена ОС (не доставлены специальные fixes), то правила перехода могут не соответствовать действительности, так было недавно, когда USA поменяли правила перехода. В некоторых browser-ах нужные функции JS могут глючить (даже при правильной настройке времени в операционке). В общем, полный беспредел, как обычно. Особенно это было заметно, когда в прошлом году в USA поменяли правила перехода на летнее время.
Поэтому программистами нашей компании была написана своя реализация математики исчисления дат, а временная зона авто-подкидывалась, но не авто-определялась вообще без участия пользователя.
0
Вообще конечно хочется спать, и мозг плоховато работает, но по идее толжен сработать такой алгоритм:
Передаём с сервера на клиент текущее серверное время (ts1), и то время которое нужно перевести и показать клиенту (ts2). Текущее клиентское время обозначим через tc1, а то которое нужно отобрзить - tс2
Очевидно ts1-tc1 = ts2-tc2
А отсюда tc2 = ts2+tc1-ts1
Передаём с сервера на клиент текущее серверное время (ts1), и то время которое нужно перевести и показать клиенту (ts2). Текущее клиентское время обозначим через tc1, а то которое нужно отобрзить - tс2
Очевидно ts1-tc1 = ts2-tc2
А отсюда tc2 = ts2+tc1-ts1
0
ts1-tc1 = ts2-tc2 не всегда верно. сервер или клиент может находится в временной зоне без перехода на летнее время
0
UFO just landed and posted this here
Что-то я не понял всех танцев.
Передаём из PHP в JS timestamp, а там new Date(timestamp * 1000), вывод из этого объекта будет уже в локальном времени.
Передаём из PHP в JS timestamp, а там new Date(timestamp * 1000), вывод из этого объекта будет уже в локальном времени.
+1
Sign up to leave a comment.
JavaScript: получаем информацию о временной зоне.