@makar04

Как учитывать разницу во времени при работе с часовыми поясами в php и sql?

Доброго времени суток! Работаю с системой отчётов. Столкнулся с проблемой при выборке данных из базы с учётом часовых поясов.
Сервер работает по московскому времени.
При записи данных в базу, клиент может установить дату и время записи, запись вставляется не та которую клиент указал а переводится в московский часовой пояс, а клиенту отображается уже в его часовом поясе.
Например:
Клиент сделал запись 2019-02-10 в 00:01:55 по Екатеринбургскому времени UTC+5 а в базу записалось 2019-02-09 22:01:55 по Московскому UTC+3, далее клиент хочет получить все записи за 2019-02-10 и делает sql запрос
"SELECT * FROM parcel WHERE DATE(date_added) >= '2019-02-10' AND DATE(date_added) <= '2019-02-10'";

Соответственно, так как у нас дата записи 2019-02-09 22:01:55 он не получит желаемого результата.

Подумывал было вставлять реальную дату и время, то-есть не по времени сервера а по тому времени которое у клиента, но так как с записями могут работать с разных аккаунтов и из разных часовых поясов, то понял что это не вариант.

Как можно выйти из ситуации?
  • Вопрос задан
  • 673 просмотра
Решения вопроса 1
@bkosun
Очевидно, что, прежде чем делать выборку, нужно конвертировать запрошенную дату в системный часовой пояс, как Вы делаете это во время записи в базу данных.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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