Я храню записи активности в таблице MySQL. В таблице есть поле date_created типа timestamp, и через PHP я вставляю записи активности, основанные на GMT:
$timestamp = gmdate("Y-m-d H:i:s", time());
Это отлично работает. На моем клиенте я в GMT + 2. Если здесь 16:00 и я вставляю запись, она сохраняется в MySQL как 14:00. Это, как я и ожидал. Мой
Теперь я хотел бы получить количество записей активности от MySQL за последний час. Я использую следующий запрос:
SELECT COUNT(id) as cnt FROM karmalog WHERE user_id = ' 89' AND event='IMG_UPD'
AND date_created > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 HOUR)
Это ничего не возвращает, потому что CURRENT_TIMESTAMP использует настройки часового пояса MySQL, для которых установлено SYSTEM, которое установлено в GMT + 2. Я думаю, что я ищу это GMT_CURRENTTIMESTAMP в MySQL, есть ли такая вещь?