【发布时间】:2014-04-12 09:42:50
【问题描述】:
我在将偏移量转换为时区名称时遇到了奇怪的问题。
我使用以下代码将偏移量转换为时区。
$timezoneOffset = "+05:30";
echo $timezone_name = timezone_name_from_abbr("",$timezoneOffset*3600,0);
输出:亚洲/卡拉奇
预期产出:亚洲/加尔各答
要检查我使用的偏移量
$timezone = 'Asia/Kolkata';
$time = new \DateTime('now', new DateTimeZone($timezone));
$timezoneOffset = $time->format('P'); //output: +05:30
$timezone_name = timezone_name_from_abbr("",$timezoneOffset*3600,0);
echo $timezone_name;exit;
输出仍然是Asia/Karachi
那么问题是什么?我应该怎么做才能解决这个问题?
提前致谢。
【问题讨论】:
-
确保您了解这其中的含义。有许多不同的时区共享相同的偏移量,有些时区也共享相同的缩写。
timezone_name_from_abbr只返回任何可能结果的第一个匹配项。另请参阅timezone tag wiki 中的“时区!= 偏移量”。
标签: php timezone timezone-offset