Timezone_name_from_abbr失败,偏移30分钟



我一直在尝试根据提供的UTC偏移量获得时区名称,但我似乎无法让它工作30分钟偏移量(即UTC+09:30)

<?php
function timeZoneTest($input) {
    if ($returnValue = timezone_name_from_abbr('', 60 * 60 * $input, 0)) {
     return $returnValue;
    } else {
     return 'Time Zone Not Found';
    }
}
echo timeZoneTest(9) . '<br>';
echo timeZoneTest(9.5) . '<br>';

这回报:

Asia/Tokyo
Time Zone Not Found
9.5不应该返回Australia/Adelaide或至少一个有效的php时区吗?任何帮助将不胜感激!

使用

<?php
function tz_offset_to_name($offset)
{
        $offset *= 3600; // convert hour offset to seconds
        $abbrarray = timezone_abbreviations_list();
        foreach ($abbrarray as $abbr)
        {
                foreach ($abbr as $city)
                {
                        if ($city['offset'] == $offset)
                        {
                                return $city['timezone_id'];
                        }
                }
        }
        return FALSE;
}
echo tz_offset_to_name(9) . '<br>';
echo tz_offset_to_name(9.5) . '<br>';
?>

结果将是:

Asia/Tokyo
Australia/Adelaid

https://repl.it/EBSO/0

,

timezone_name_from_abbr()有时返回FALSE而不是实际的时区:http://bugs.php.net/44780

相关内容

  • 没有找到相关文章