PHP使用时区功能的时差?

时间:2013-08-21 11:50:40

标签: php

我正在尝试使用PHP中的时区功能找到显示两个位置之间时间差异的方法:http://php.net/manual/en/timezones.php

假设我从上面的链接中选择了英国和中国,我可以在php页面上显示位置的时间,但是如何显示这两个位置之间的时差?

即。在英国是12:49而在中国是18:49。我需要在几小时内显示这两个值之间的差异!

任何帮助都会很棒。

编辑:这是我如何在PHP中显示特定位置的当前时间:

<div style="visibility:hidden;"><?php
date_default_timezone_set('Europe/Moscow');
echo  'Current Time In Moscow: ' . date('H:i:s.A') . PHP_EOL ;
?>

<div style="visibility:hidden;"><?php
date_default_timezone_set('Asia/Shanghai');
echo  'Current Time In Beijing: ' . date('H:i:s.A') . PHP_EOL ;
?>

我也在谷歌上发现了这个链接,但我不确定如何解决这个问题:http://kukunotes.wordpress.com/2013/04/28/php-find-time-difference-between-two-countries-by-country-code/

1 个答案:

答案 0 :(得分:1)

function get_timezone_offset( $origin_tz, $remote_tz ) {
    $timezone1 = new DateTimeZone( $origin_tz );
    $timezone2 = new DateTimeZone( $remote_tz );

    $datetime1 = new DateTime("now", $timezone1);
    $datetime2 = new DateTime("now", $timezone2);

    $offset = $timezone1->getOffset($datetime1) - $timezone2->getOffset($datetime2);
    return $offset;
}

$offset = get_timezone_offset( 'Europe/London', 'Asia/Shanghai' );

// convert offset to hours
echo $offset/3600;