要偏移的 PHP 时区名称

2022-08-30 16:16:13

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

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


答案 1

您可以使用以下内容

<?php

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

答案 2

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

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

推荐