【发布时间】:2017-10-04 03:50:23
【问题描述】:
好吧,我被难住了。这是我拥有的两个日期对象:
// $startDate value
DateTime::__set_state(array(
'date' => '2017-11-05 00:00:00.000000',
'timezone_type' => 3,
'timezone' => 'America/Chicago',
))
// $endDate value
DateTime::__set_state(array(
'date' => '2017-11-05 23:59:00.000000',
'timezone_type' => 3,
'timezone' => 'America/Chicago',
))
它们都有完全相同的时区信息。但是,当我运行 $startDate->format(DateTime::ISO8601) 和 $endDate->format(DateTime::ISO8601) 时,我得到不同的时区偏移量。
// $startDate->format(DateTime::ISO8601)
2017-11-05T00:00:00-0500
// $endDate->format(DateTime::ISO8601)
2017-11-05T23:59:00-0600
知道是什么原因造成的吗?
【问题讨论】:
-
11 月 5 日是 DST 结束的那一天,因此 UTC 偏移量会发生变化。
标签: php datetime formatdatetime