PHP会自动将标准时间转换为夏令时吗?

时间:2014-09-16 13:10:45

标签: php date datetime time timezone

PHP会自动将标准时间转换为白天节省时间吗?例如,我们需要PST[$toTimezone]时区的时间,但PHP正在返回PDT。下面是我们使用的示例函数。

$fromTime = '2014-09-16 06:45:45';
$fromTimezone = 'GMT';
$toTimezone = 'PST';

function x($fromTime, $fromTimezone, $toTimezone,$format = 'l, F jS, Y g:i A T') {
  $fromTimezone = new \DateTimeZone($fromTimezone);
  $toTimezone = new \DateTimeZone($toTimezone);
  $orgTime = new \DateTime($fromTime, $fromTimezone);
  $toTime = new \DateTime($orgTime->format("c"));
  $toTime->setTimezone($toTimezone);
  return $toTime->format($format);
}

此致 Vamsi Krishna Grandhi

1 个答案:

答案 0 :(得分:3)

PHP会将时间转换为当前观察到的时区。因此,在纽约的情况下,它将在今天的东部夏令时(-4)和今年的最后一天,纽约将在东部标准时间。没有观察夏令时的亚利桑那州凤凰城总是在山地标准时间。

$date = new DateTime('2014-09-16', new DateTimeZone('America/New_York'));
echo $date->format('c T');

$date = new DateTime('2014-09-16', new DateTimeZone('America/Phoenix'));
echo $date->format('c T');

$date = new DateTime('2014-12-31', new DateTimeZone('America/New_York'));
echo $date->format('c T');

$date = new DateTime('2014-12-31', new DateTimeZone('America/Phoenix'));
echo $date->format('c T');

2014-09-16T21:12:03-04:00 EDT
2014-09-16T18:12:03-07:00 MST
2014-12-31T00:00:00-05:00 EST
2014-12-31T00:00:00-07:00 MST