我在共享服务器上存储了一个网站,并且根据服务器的操作系统设置了时区,该网站提前两个小时。
我更改了我的php.ini并尝试了:
SET time_zone='-7:00'
SET time_zone='Canada/Mountain'
在mysql中,但行不通。有没有解决的办法?覆盖或设置Timzone?
我的托管公司支持表示,我应该在每个MySQL会话开始时运行" SET TIME_ZONE",但我不明白它们的含义,他们对此很含糊。
与数据库连接后需要进行。
for ex(如果您使用的是PDO,这就是示例,您可以相应地更改):
mysql_query("SET time_zone='-7:00'");
我也想在这里提及/-标志是必不可少的 - 即使对于零。
也来自mysql文档:
"当前的会话时区设置会影响区域敏感的时间值的显示和存储。这包括由诸如现在()或curtime()()()函数显示的值,以及存储在时间戳列中并检索的值。
当前时区设置不影响函数显示的值,例如utc_timestamp()或日期,时间或日期列中的值。"
希望这个帮助!
我在从php4到php5的时间和日期中也有类似的问题,我所有的时间函数都停止工作。解决方案是放置date_default_timezone_set('America/Los_angeles');在代码的第一行中。