【发布时间】:2016-03-29 11:14:39
【问题描述】:
我正在制作一个应用程序,我需要使用 PHP date() 函数将日期存储在 MySQL 中。
<?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 服务器获取 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。
非常感谢您的支持。
【问题讨论】:
标签: php mysql date datetime timezone