Php 从日期时间查找时区

Php 从日期时间查找时区,php,timezone,Php,Timezone,我有一根像 Sat,2012年10月27日23:47:57-0700我想得到相应的-0700时区,比如PST,UTC等等。基本上,你不能。您当前刚刚得到UTC的偏移量。。。这可能映射到多个时区。当然,您可以创建一个固定偏移时区,但这与“生成此日期/时间值时用户最初所在的时区”不同,我想这是您想要的 您可以查看每个时区的步骤,并查看它在每个时区中是否有效-但您需要小心,因为有些时间是不明确的。例如,在英国的周日,“Sun,2012年10月28日01:30:00+0100”和“Sun,2012年10

我有一根像
Sat,2012年10月27日23:47:57-0700
我想得到相应的
-0700
时区,比如
PST
UTC
等等。

基本上,你不能。您当前刚刚得到UTC的偏移量。。。这可能映射到多个时区。当然,您可以创建一个固定偏移时区,但这与“生成此日期/时间值时用户最初所在的时区”不同,我想这是您想要的

您可以查看每个时区的步骤,并查看它在每个时区中是否有效-但您需要小心,因为有些时间是不明确的。例如,在英国的周日,“Sun,2012年10月28日01:30:00+0100”和“Sun,2012年10月28日01:30:00+0000”都是有效的。您可能需要计算出UTC的绝对时刻,并检查该时刻在候选时区中的偏移量。如果该偏移量与您开始使用的偏移量相同,则该时区是最适合的时区之一


如果你找到多个适合的时区,你会想做什么,我不知道-我们没有足够的上下文来提供建议。

对于给定的偏移量,可能有多个时区标识符。多久会有多个时区与给定的UTC+偏移量相匹配?@jongietzen:确实经常。如果您对历史变化不感兴趣(即给定某一特定时刻的UTC偏移量,如果您只关心UTC偏移量之后的情况),那么情况就不会如此了,但这种情况仍然会发生,而且比您预期的要多。作为一个例子,考虑伦敦和卡萨布兰卡——大多数时候它们有相同的偏移量,但在仲夏的一个月里,卡萨布兰卡可以回到标准时间。(可能是斋月——还不确定。)