0

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

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

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

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

我的托管公司支持人员说我应该在每个 mysql 会话开始时运行“SET time_zone”,但我不明白他们的意思,他们对此非常模糊。

4

2 回答 2

1

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

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

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

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

也来自Mysql 文档

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

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

希望这有帮助!

于 2012-10-22T07:28:14.800 回答
0

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

于 2012-10-22T09:13:14.760 回答