Я создаю приложение, в котором мне нужно сохранить дату в MySQL, используя функцию PHP date()
.
<?php $finalize_at = date('Y-m-d H:i:s'); ?>
Эти даты необходимо сравнить в MySQL с помощью функции NOW()
, чтобы вернуть разницу в часах, например:
SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
Но проблема в том, что функция даты PHP date('Y-m-d H:i:s')
использует настройку часового пояса PHP, а функция NOW()
занимает MySQL timezome с сервера MySQL.
Я пытаюсь решить это:
-
date_default_timezone_set('Europe/Paris');
Он работает только для PHP. -
date.timezone= "Europe/Paris";
Он работает только для PHP. -
SELECT CONVERT_TZ(now(), 'GMT', 'MET');
Это возвращает пустое. -
mysql> SET time_zone = 'Europe/Paris';
Это вызывает ошибку из консоли MySQL.
И часовой пояс не изменяется для MySQL.
Есть ли способ изменить часовой пояс для PHP и MySQL без необходимости делать это с консоли MySQL или установить изменение часового пояса где-то в php.ini
и сделать эти значения доступными как для PHP, так и для MySQL.
Большое спасибо за вашу поддержку.