在 PHP 和 MySQL 中设置时区
我正在制作一个应用程序,我需要使用PHP函数在MySQL中存储日期。date()
<?php $finalize_at = date('Y-m-d H:i:s'); ?>
这些日期需要在MySQL中使用函数进行比较,以返回小时数的差异,例如:NOW()
SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
但问题是 - PHP日期函数使用PHP时区设置,并且该函数从MySQL服务器获取MySQL时间。date('Y-m-d H:i:s')
NOW()
我正在尝试解决这个问题:
-
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和MySQL。php.ini
非常感谢您的支持。