Столкнулся с такой проблемой. Если вывести текущее время так:
echo "Текущее время: ".date("Y-m-d H:i:s");
то на локальном компе отображается время на час больше, а на сервере хостинга и того больше. При этом настройка
mysql_query("SET LOCAL time_zone='+03:00'");
в файле подключения к БД не влияет
Можно-ли как-то задать привязку по часовому поясу при отображении времени?
Ну это для проверки я вывел просто текущее время, а на самом деле, все немного сложнее.
У меня в таблице периодически пересчитывается рейтинг и через 12 часов обновляется. Соответственно, в базе хранится метка времени которое было на момент обновления данных, в поле типа int как число timestamp, по которой определяется необходимость в обновлении данных.
При обновлении данных в других полях, обновляю также поле time_change типа int занося в него значение из time(), затем сверяю время в этом поле с текущим временем
if($data['time_change'] < (time() - 60*60*12))
//если данные устарели - обновляю
Если я создам такое поле (другого типа)
ALTER TABLE `data` ADD `time_change2` TIMESTAMP NOT NULL DEFAULT 0 AFTER `time_change` ;
как в него сохранить время?
из базы чтобы этот таймстамп взять, понадобится сделать запрос вида
UNIX_TIMESTAMP(`time_change2`) as `tstamp`
верно?
В общем, зашел в тупик и не знаю как правильнее хранить этот таймстамп, да еще чтобы его выводить на странице и время совпадало с настройками в базе.