2017-04-20 113 views
0

我需要得到PHP中两个时区之间的偏移量。我使用下面的代码来做到这一点:Php Datetime()返回偏移量为0为不同的时区

 $origin_tz="America/Los_Angeles"; 
     $remote_tz="UTC"; 
     $origin_dtz = new DateTimeZone($origin_tz); 
     $remote_dtz = new DateTimeZone($remote_tz); 
     $origin_dt = new DateTime("now", $origin_dtz); 
     $remote_dt = new DateTime("now", $remote_dtz); 
     $offset = $origin_dtz->getOffset($origin_dt) - $remote_dtz->getOffset($remote_dt); 

我得到抵消为0.我在这里做错了什么?

回答

0

的getOffset:返回时区从UTC

$origin_tz="America/Los_Angeles"; 
$remote_tz="Europe/Berlin"; 

$origin_dtz = new DateTime('NOW', new DateTimeZone($origin_tz)); 
$remote_dtz = new DateTime('NOW', new DateTimeZone($remote_tz)); 

$originOffset = $origin_dtz->getOffset(); // -25200 => 7h to UTC 
$remoteOffset = $remote_dtz->getOffset(); // 7200 => 2h to UTC 

$offset = $originOffset - $remoteOffset; // -32400 => -9h 
以秒为偏移
相关问题