【发布时间】:2017-02-17 19:42:03
【问题描述】:
我们是否使用时区,但出于某种原因,php 使用一长串主要城市的时区设置。我经常在世界不同地区的网站上工作,要弄清楚哪个时区设置是正确的并不容易。
例如,您正在德国阿尔布施塔特的一个网站上工作。您进行谷歌搜索,发现 Albstadt 是 GMT+1。然后您转到 php 文档页面并找到以下内容:http://php.net/manual/en/timezones.europe.php
好的,这里有欧洲主要城市的列表。不是很有帮助。不,即使页面标题为“支持的时区列表”,它们实际上不是“时区”。除非您碰巧知道这些城市中的哪个是 GMT+1,否则您似乎有点陷入反复试验,直到获得成功。似乎应该在php中有一个设置:
date.timezone = 'GMT+1'
但没有。因此我的问题是:如何轻松确定给定位置的正确 date.timezone 设置?
(注意:我知道这个问答:List of US Time Zones for PHP to use?,但我不是在寻找列表,我也不认为 “这是我找到的列表”确定正确的设置)
【问题讨论】:
-
某个地方的某个人将不得不维护一个列表,因为这些东西发生了变化。我不确定是否会有比查询某些列表或 API 更好的答案。
-
按照您建议的方式进行操作的一个问题是它不考虑 DST。举个任意的例子,
America/Sao_Paulo和America/Bahia都是 GMT -3,但America/Sao_Paulo遵循巴西 DST,而America/Bahia没有。 -
@duplode - 你是 100% 正确的。我想我习惯于将“东部标准时间”和“格林威治标准时间”之类的东西视为时区,并且不知道 IANA 的数据库。
-
请阅读timezone tag wiki。特别是“时区!=偏移”部分