3

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

SET SESSION time_zone = '+04:00'

问题是如何+04:00在我的国家/地区检测 PHP 中的这一部分(由于夏令时,它可能在一年中有所不同)?

在此处输入图像描述

4

3 回答 3

4

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

如果您还没有将 zoneinfo 加载到您的 mysql 数据库中,则需要将其加载到您的 mysql 数据库中。

于 2013-09-17T15:36:55.243 回答
1

我猜你可能在阿塞拜疆?如果是这样,您应该使用Asia/Baku. 该时区在 +4:00 的标准偏移和 +5:00 的日光偏移之间交替。

请参阅时区标签 wiki中的“时区!= 偏移量”和“时区数据库” 。

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

但通常更好的方法是仅在数据库中存储 UTC 时间。您可以使用DateTimeDateTimeZone类直接在 PHP 中进行时区转换。PHP 也实现了相同的 IANA 时区数据库,您可以Asia/BakuPHP 的支持时区列表中找到。

于 2013-09-17T18:20:10.093 回答
0

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

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

+00:00 是与 GMT 的偏移量。查看时区支持页面以获得更好的参考。

于 2013-09-17T15:53:00.473 回答