Показать сообщение отдельно
  #20 (permalink)  
Старый 08.08.2018, 16:38
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от laimas
А как оно может работать правильно, если вычисление будет слева направо, а значит знак может быть не учтен? Либо разность смещений вычитаем, либо в общем выражении выносим их в скобки.
Мало того, у вас московское смещение всегда отрицательно, и будет верно только для тех кто восточнее Гринвича, а кто сказал, что запросы не могут быть с западных. Корректнее смешение сервера передавать самому серверу на клиента. Сервер в отличие от клиента передает их с противоположным знаком - для восточных отрицательные, для западных положительные.
С какого бы направления они ни были - getTimezoneOffset() приходит со своим знаком, для тех, кто восточнее - с минусом, кто западнее - с плюсом.
Далее по формуле убираем их местное смещение и добавляем отрицательное московское. Вот и все. Время московское, что и хотел ТС.

Насчет того, что клиент может подкрутить часы - это да, на клиенте с этим не справиться. Только сервер.

Последний раз редактировалось Dilettante_Pro, 08.08.2018 в 16:42.
Ответить с цитированием