为会话设置MySQL时区

时间:2013-09-17 15:24:15

标签: php mysql time timezone dst

我知道使用此查询我可以在mysql服务器中设置每个会话的时间

SET SESSION time_zone = '+04:00'

问题是如何在我的国家/地区使用PHP检测此+04:00(因为夏令时可能会有所不同)?

enter image description here

3 个答案:

答案 0 :(得分:4)

尝试使用时区名称(如America/Chicago)而不是+/-一组小时。这应该考虑夏令时。

如果您还没有将zoneinfo加载到您的mysql数据库中,

答案 1 :(得分:1)

我猜你也许在阿塞拜疆?如果是,则应使用Asia/Baku的IANA时区ID。此时区在+4:00的标准偏移和+5:00的日光偏移之间交替。

请参阅the timezone tag wiki中的“时区!=偏移”和“时区数据库”。

如果您需要在MySQL中执行此操作,则需要使用mysql_tzinfo_to_sql将IANA时区数据库(也称为“zoneinfo”)加载到MySQL中。感谢datasage和kordirko的提示。

但通常更好的方法是只在您的数据库中存储UTC时间。您可以使用DateTimeDateTimeZone类直接在PHP中进行时区翻译。 PHP还实现了相同的IANA时区数据库,您可以在PHP's list of supported time zones上找到Asia/Baku

答案 2 :(得分:0)

打开my.ini文件。对于Windows,它位于/mysql/bin/my.ini中 搜索 mysqld 部分。 在本节中输入 -

default-time-zone = '+00:00'

+00:00是GMT的偏移量。查看time-zone-support页面以获得更好的参考。