长话短说
PHP5是否有一个官方的、未被弃用的时区可以识别东部标准时间,而不是东部夏令时间?
详细说明 :-P
哇,我无法相信PHP在设置时间方面会出现这样的混乱。
我想使用PHP5的date_default_timezone_set()函数来设置脚本的时区。我想使用标准时间。我不想让我的脚本遵守夏令时。我不想每次程序写入时间时都使用gmtime()并减去60*60*5秒。我也不想将该值保存到变量中。设置默认时区更加优雅,使脚本更易移植到其他服务器和地区。
不幸的是,当设置默认时区时,PHP要求我使用他们愚蠢的“官方时区”之一。虽然有一个“America/New_York”,但我不知道它或任何官方PHP时区是否遵循夏令时。通过实验,我发现“America/New_York”确实遵守夏令时。而“America/Panama”是EST,因此不遵守夏令时...但如果巴拿马将来改变了对夏令时的看法怎么办?(他们在1908年遵守夏令时)
因为巴拿马可能随时改变主意,所以我只想使用GMT或UTC偏移量。
然后还有这个...
http://us.php.net/manual/en/timezones.others.php
上面的链接列出了我认为已经过时的时区。 "EST"在其中,但非常以美国为中心,所以我理解为什么它已经过时了。 "Ect / GMT-5"也在那里,但我绝对不知道为什么会过时。 如果你问我,所有地名时区都应该过时,GMT时区应该不过时......但是要知道...... "Ect / GMT-5"实际上是错误的! 我不得不使用“Ect / GMT + 5”来获得美国东部标准时间。 我很确定我在这里的东海岸不比英格兰早5个小时。回答了吗?
没有人真正回答这个问题。 所以我想我自己回答吧。 “不,PHP5没有识别东部标准时间的未过时时区”
许多人告诉我应该将日期存储为UTC时间,并在从存储中拉取它们时将它们转换为本地时间 - 这是我已经知道的事情。 问题是,我被雇用只修复脚本的这一小部分,我怀疑那个家伙不会让我重写他一直在使用的整个代码,据说这是自PHP诞生以来。
我将不情愿地给予这位向你展示如何正确存储和检索时间的家伙赞誉,以便未来搜索此内容的人学习如何以正确的方式执行此操作。