Php DateTime::修改和DST开关

Php DateTime::修改和DST开关,php,datetime,Php,Datetime,使用跨DST边界添加一小时会导致DST跳过一小时 e、 g 我想看两遍“凌晨1点”(然后是“凌晨2点”),因为时间倒流一小时 我怎样才能得到这种行为?这是一种错误。() 要解决此问题,请将时区更改为UTC,然后再更改回来 $d = new DateTime('2015-11-01 12:00:00 AM', new DateTimeZone('America/Vancouver')); $tz = getTimezone(); $d->setTimezone(new DateTimeZo

使用跨DST边界添加一小时会导致DST跳过一小时

e、 g

我想看两遍“凌晨1点”(然后是“凌晨2点”),因为时间倒流一小时

我怎样才能得到这种行为?

这是一种错误。()

要解决此问题,请将时区更改为UTC,然后再更改回来

$d = new DateTime('2015-11-01 12:00:00 AM', new DateTimeZone('America/Vancouver'));

$tz = getTimezone();
$d->setTimezone(new DateTimeZone('UTC'));
$d->modify('+1 hour'); 
$d->modify('+1 hour'); 
$d->modify('+1 hour'); 
$d->setTimezone($tz);
echo $d->format('d-M-Y g:ia'); // 01-Nov-2015 2:00am
在我看来,这似乎是一个错误:
$d = new DateTime('2015-11-01 12:00:00 AM', new DateTimeZone('America/Vancouver'));

$tz = getTimezone();
$d->setTimezone(new DateTimeZone('UTC'));
$d->modify('+1 hour'); 
$d->modify('+1 hour'); 
$d->modify('+1 hour'); 
$d->setTimezone($tz);
echo $d->format('d-M-Y g:ia'); // 01-Nov-2015 2:00am