我有一个网站存储在共享服务器上,时区是根据服务器的操作系统设置的,提前两个小时。
我更改了我的php.ini并尝试:
SET time_zone='-7:00'
SET time_zone='Canada/Mountain'
在MySQL中,但它不起作用。有什么办法可以解决这个问题吗?覆盖或设置时区?
我的托管公司的支持人员说我应该在每次mysql会话开始时运行"SET time_zone“,但我不明白他们的意思,他们对此含糊其辞。
发布于 2012-10-22 15:28:15
您需要在连接到数据库后立即执行此操作。
对于EX (如果您使用的是PDO,则这只是一个示例,您可以相应地更改它):
mysql_query("SET time_zone='-7:00'");
我还想在这里提到+/-符号是必不可少的-即使是零。
也来自Mysql docs
“当前会话时区设置影响区分区域的时间值的显示和存储。这包括由NOW()或CURTIME()等函数显示的值,以及在时间戳列中存储和检索的值。
当前时区设置不会影响UTC_TIMESTAMP()等函数显示的值,也不会影响日期、时间或日期时间列中的值。
希望这对你有所帮助!
发布于 2012-10-22 17:13:15
当我从php4移动到php5时,我遇到了类似的时间和日期问题,我所有的时间函数都停止了工作。解决方案是将date_default_timezone_set('America/Los_Angeles');放在代码的第一行。
https://stackoverflow.com/questions/13006415
复制相似问题