Задать вопрос
JackShcherbakov
@JackShcherbakov

В каком часовом поясе будет отосланное время из Москвы в формате UTC в Нью-Йорке?

Здравствуйте! Не совсем понимаю в чем заключается удобство UTC. Правильно я понимаю, что если мы на сервере в Москве создаем $a = new DateTime(), то в переменной $a будет время, которое сейчас в Москве, соответственно клиент из Нью-Йорка получит Московское время? Или в переменной $a будет время в часовом поясе клиента?

Если в переменной $a всегда время в часовом поясе сервера, то как тогда доставить клиенту правильное время?
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если в переменной $a всегда время в часовом поясе сервера, то как тогда доставить клиенту правильное время?

А вот как раз отправить клиенту время в UTC и пусть он сам переводит его в локальное с учётом региональных настроек.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DanKud
Пояс UTC является стандартом на основе которого и вычисляется отклонение часового пояса текущего пользователя. На PHP вы напрямую не определите временную зону клиента, потому что нужно опрашивать сам клиент. Это можно сделать на JavaScript функцией getTimezoneOffset, которая показывает отклонения в минутах от UTC. Так же можно по геолокации через PHP пробовать определять. Сначала получаем данные пользователя по IP функцией geoip_record_by_name, затем определяем временную зону через geoip_time_zone_by_country_and_region и в итоге с помощью DateTime::getOffset получаем отклонение временной зоны клиента в секундах. Но сразу стоит иметь ввиду, что ни один из способов не даст 100% гарантии достоверности временного пояса клиента.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы