zooks
@zooks
Frontend

Как определить текущую дату у пользователя на PHP с учетом часовых поясов?

Имеется скрипт "день в истории", который сейчас показывает события из прошлого для совпадающих дат.

Есть задача сделать так, чтобы дата правильно отображалась не только по серверному времени, но и в любом часовом поясе (допустим, если пользователь зашел из Владивостока, он видит данные уже по наступившему для него дню).

Как это лучше реализовать? При этом не хочется, чтобы делались лишние запросы, если у людей на установлена неправильная дата.
  • Вопрос задан
  • 3359 просмотров
Решения вопроса 4
Есть date_default_timezone_set, который устанавливает таймзону для всех функций, работающих со временем. Его можно вызывать после того как определили откуда зашел пользователь и какая таймзона ему нужна.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
x = new Date();
// Вычислим значение смещения текущего часового пояса в часах
currentTimeZoneOffsetInHours = -x.getTimezoneOffset()/60;
document.write(currentTimeZoneOffsetInHours);
и передаём ajax-ом на сервер, там сверяем:
if (IP->город->пояс города===currentTimeZoneOffsetInHours) -> устанавливаем
else -> Просим пользователя выставить вручную.
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Через яваскрипт узнать смещение времени у пользователя.
Ответ написан
Комментировать
altoff
@altoff
Разработка сайтов с 2004
Если используя только php, то можно воспользоваться продуктом Sypex Geo.
По ip определить часовой пояс и потом уже отталкиваясь от своего часового пояса, высчитать правильное время пользователя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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