我有一个网站存储在共享服务器上,时区是根据服务器的操作系统设置的,比服务器的操作系统提前两个小时。
我改变了我的 php.ini 并尝试了:
SET time_zone='-7:00'
SET time_zone='Canada/Mountain'
在 MySQL 但它不起作用。有没有解决的办法?覆盖或设置时区?
我的托管公司支持人员说我应该在每个 mysql 会话开始时运行“SET time_zone”,但我不明白他们的意思,他们对此非常模糊。
您需要在连接数据库后立即执行此操作。
对于 EX(这只是一个示例,如果您使用的是 PDO,您可以相应地更改它):
mysql_query("SET time_zone='-7:00'");
我还想在这里提到 +/- 符号是必不可少的——即使是零。
也来自Mysql 文档:
“当前会话时区设置会影响对区域敏感的时间值的显示和存储。这包括由 NOW() 或 CURTIME() 等函数显示的值,以及存储在 TIMESTAMP 列中和从中检索的值。
当前时区设置不会影响 UTC_TIMESTAMP() 等函数显示的值或 DATE、TIME 或 DATETIME 列中的值。"
希望这有帮助!
当我从 php4 迁移到 php5 时,我在时间和日期方面遇到了类似的问题,我所有的时间函数都停止工作。解决方案是把 date_default_timezone_set('America/Los_Angeles'); 在第一行代码中。