PHP数据(“ I”)在“ America / Phoenix”时区显示为0

时间:2019-10-22 05:40:37

标签: php timezone

我想知道此时区是否处于夏令时 我使用了以下代码

 $userTimezone = new DateTimeZone("America/Phoenix");

 $datObj = new DateTime(date('Y-M-d H:i:s'),$userTimezone);

 $dls = $datObj->format('I');

$dls的值为0,但是此时区实际上是夏令时 以下时区对我来说效果很好

America/Chicago
America/New_York
America/Los_Angeles

任何人都可以帮助我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

自1967年以来,America / Phoenix时区一直未实行夏令时。这是IANA 2019c中的规则:

# Zone  NAME        STDOFF  RULES   FORMAT  [UNTIL]
Zone America/Phoenix    -7:28:18 -  LMT 1883 Nov 18 11:31:42
            -7:00   US  M%sT    1944 Jan  1  0:01
            -7:00   -   MST 1944 Apr  1  0:01
            -7:00   US  M%sT    1944 Oct  1  0:01
            -7:00   -   MST 1967
            -7:00   US  M%sT    1968 Mar 21
            -7:00   -   MST

因此唯一仍然有效的规则是最后一个规则,将时区置于MST。