我知道使用此查询我可以在mysql服务器中设置每个会话的时间
SET SESSION time_zone = '+04:00'
问题是如何在我的国家/地区使用PHP检测此+04:00
(因为夏令时可能会有所不同)?
答案 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时间。您可以使用DateTime
和DateTimeZone
类直接在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页面以获得更好的参考。