日期、时间、DSL 和时区信息处理
Posted
技术标签:
【中文标题】日期、时间、DSL 和时区信息处理【英文标题】:Date, Time, DSL and Timezone information handling 【发布时间】:2013-03-05 14:48:29 【问题描述】:时区和夏令时信息如有更改,恕不另行通知。 A simple piece of legislation 可能会更改某个区域的 DSL 并使日期时间信息对全球某个区域无用,从而突然影响依赖于服务器或客户端本地时间的代码。而且,时区只是松散地反映实际的sunset/sunrise 时间。
有几个 php 用户空间库会受到这种不可预测的“时间”定义的影响,包括 DateTime
、date
等。在用户空间之外,可能存在依赖于时区转换的内部代码。
PHP 的库如何解释不断变化的日期、时间和时区定义?
【问题讨论】:
使使用的时区数据库保持最新是管理员的工作。 @CBroe:那是哪个“时区数据库”? php.net/manual/en/datetime.installation.php @CBroe:“无需安装即可使用这些功能;它们是 PHP 核心的一部分。”但它也建议从 pecl 获取最新信息。您的链接提供了相互矛盾的说明。请注意,这是一个内部问题,所以我问的是如何维护 tz 数据。 en.wikipedia.org/wiki/Tz_database, iana.org/time-zones 【参考方案1】:PHP 在内部使用 tz 数据库,也称为 zoneinfo 数据库、IANA 时区数据库或 Olson 数据库。 (虽然当然可以从另一个数据库为其提供时区数据。)
更多信息可以在这里找到:http://en.wikipedia.org/wiki/Tz_database 和这里:http://www.iana.org/time-zones
【讨论】:
以上是关于日期、时间、DSL 和时区信息处理的主要内容,如果未能解决你的问题,请参考以下文章
当数据依赖于日期时间时,在数据库中保存日期时间和时区信息的最佳实践
如何为 pytz 处理 POSIX 时区信息(如 CST)?