我如何将时区名称(“亚洲/迪拜”,“欧洲/安道尔”等)转换为以小时(甚至几秒钟)的GMT偏移量,因为我可以从那里转换它。
大多数人要求反过来,但我需要从GeoNames提供的时区名称中获得时区偏移量。
答案 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;