Как исправить сдвиг времени (MySQL запрос)?

Разница локального времени (Open Server) и времени на сервере (VPS) - 3 часа. (на сервере на 3 часа меньше)
На VPS сервере - время не изменить. Но часть настроек наверно можно.

На сервере есть база с таблицей - table. В таблице 2 колонки - time и data.
time - unix timestamp. $time=time(); data - просто число.

Мне подсказали, что записи за текущий день, предыдущий день (любое кол-во дней назад) - ровно с 00.00 до 24.00 можно выводить так.
$result=mysql_query("SELECT `time`,`data` FROM `table` where `time`>UNIX_TIMESTAMP(SUBDATE(CURDATE(),1)) AND `time`<UNIX_TIMESTAMP(SUBDATE(CURDATE(),2))") or die (mysql_error());

И это работает.

Так как я разрабатываю проект на Open Server, то я загрузил базу с VPS сервера.
Использую (в коде проекта) запрос - все прекрасно, но вот время time меньше на 3 часа. И это понятно БД с сервера.
Я написал код - добавил к времени 10800 секунд и все стало как надо. На Open Server работает.
Время моё, локальное.

Далее
Загрузил проект на VPS сервер.
Использую (в коде проекта) запрос - и вижу: время локальное, но вот выборка сдвинута на 3 часа.
А на Open Server такого нет. Там всё четко с 00.00 до 24.00.

Как это можно исправить?
  • Вопрос задан
  • 437 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
при инициализации соединения выполнить запрос "SET time_zone = '+2:00';" (или другой соответствующий часовой пояс), в пхп соответственно тоже настроить таймзону, чтобы не было расхождения, настройки ОС трогать нет необходимости.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Измени в конфиге mysql временную зону
default-time-zone
со сдвигом в нужную сторону
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы