如何将时区名称(“Asia/Dubai”,“Europe/Andorra”等)转换为以小时为单位的GMT偏移量(甚至是秒,因为我可以从那里进行转换)。
大多数人要求反向操作,但我需要从GeoNames提供的时区名称获取时区偏移量。
如何将时区名称(“Asia/Dubai”,“Europe/Andorra”等)转换为以小时为单位的GMT偏移量(甚至是秒,因为我可以从那里进行转换)。
大多数人要求反向操作,但我需要从GeoNames提供的时区名称获取时区偏移量。
你可以使用以下方法
<?php
$timezone = 'Pacific/Nauru';
$time = new \DateTime('now', new DateTimeZone($timezone));
$timezoneOffset = $time->format('P');
?>
$time->getOffset()
以输出整数秒。 - SenTisso另一个选择是使用现有的DateTimeZone::getOffset()
方法,它返回指定日期/时间时区偏移量,单位为秒。
$timezone = new DateTimeZone("Europe/Andorra");
$offset = $timezone->getOffset(new DateTime);
hh:mm
格式的format('P')
相反。 - hpaknia