MySQL(phpmyadmin)时区的问题

时间:2012-10-22 07:03:31

标签: php mysql sql timezone

我有一个存储在共享服务器上的网站,时区是根据服务器的操作系统设置的,这是提前两个小时。

我改变了我的php.ini并尝试了:

SET time_zone='-7:00'
SET time_zone='Canada/Mountain'

在MySQL中但它不起作用。有没有解决的办法?要覆盖或设置timzone?

我的托管公司支持说我应该在每个mysql会话开始时运行“SET time_zone”,但我不明白它们的含义,而且它们对此非常模糊。

2 个答案:

答案 0 :(得分:1)

您需要在与数据库连接后立即执行此操作。

对于EX(这只是您使用PDO的示例,您可以相应地更改它):

    mysql_query("SET time_zone='-7:00'");

我还想在这里提一下+/-符号是必不可少的 - 即使是零。

同样来自Mysql docs

“当前会话时区设置会影响区域敏感的时间值的显示和存储。这包括NOW()或CURTIME()等函数显示的值,以及TIMESTAMP列中存储和检索的值。

当前时区设置不会影响UTC_TIMESTAMP()等函数或DATE,TIME或DATETIME列中的值显示的值。“

希望这有帮助!

答案 1 :(得分:0)

当我从php4移到php5时,我遇到了类似的时间和日期问题,我的所有时间功能都停止工作。解决方法是放入date_default_timezone_set('America / Los_Angeles');在第一行代码中。