【发布时间】:2013-12-20 22:11:45
【问题描述】:
在 PHP 中,您可以通过简单的代码行更改时区
date_default_timezone_set('Europe/London');
我遇到的问题是制作基于用户的时区更改器。我想让用户使用带有时区选项的下拉框,并使用 MySQL 将其保存在用户的数据变量中。我的问题与 PHP 如何处理时区有关,特别是与每个变量的名称有关。具有如下名称的时区已经足够令人困惑了。
- 欧洲/伦敦
- 亚洲/上海
- 美国/道森
这不是唯一的问题,不同时区名称的数量如此之多,达到数百个。我不确定这数百个该使用哪一个,因为我显然不能全部使用它们,因为那样会有点多余和低效。我会使用像GMT+5 or GMT-1 这样的时区,但PHP manual 说我不应该使用它们,而且从我读到的内容来看,它们不支持 DST。我想知道我应该怎么做才能获得一个对我的目的有益的时区列表。或者,如果有人足够好,他们可以将我转发到我可以使用的列表。
我正在寻找可以涵盖大多数时区的任何列表。
TL;DR我需要帮助来确定时区下拉框要使用的时区。
【问题讨论】:
-
我相信大多数人都觉得
+0700或CEST比Europe/London更令人困惑。当我以某种形式找到像GMT+5这样的东西时,我永远不知道该回答什么:我的国家/地区每年在GMT+1和GMT+2之间交换两次,但我知道我的时间与首都相同(尽管我没有'住在那里)。无论如何,您必须澄清您想要什么样的列表,否则这个问题将被关闭为“主要基于意见”。 -
"GMT+X" 衡量一个地区当前与 GMT 时间有多少小时的偏差。这并没有说明它是什么时区,因为这个偏移量每年会在每个地方发生几次变化。这就是时区存在的原因,它指定了何时发生这种情况的规则。觉得单子太长就去各地投诉吧。