PHP时区名称抵消

时间:2011-01-18 19:49:29

标签: php timezone offset

我如何将时区名称(“亚洲/迪拜”,“欧洲/安道尔”等)转换为以小时(甚至几秒钟)的GMT偏移量,因为我可以从那里转换它。

大多数人要求反过来,但我需要从GeoNames提供的时区名称中获得时区偏移量。

3 个答案:

答案 0 :(得分:34)

您可以使用以下

<?php

$timezone = 'Pacific/Nauru';
$time = new \DateTime('now', new DateTimeZone($timezone));
$timezoneOffset = $time->format('P');
?>

答案 1 :(得分:23)

另一种选择是使用可用的DateTimeZone::getOffset()方法,该方法返回指定日期/时间的时区偏移量。

$timezone = new DateTimeZone("Europe/Andorra");
$offset   = $timezone->getOffset(new DateTime);

答案 2 :(得分:9)

我喜欢使用PHP Carbon

$offset = Carbon::now('Europe/Andorra')->offsetHours;