如何在PHP中获取时区的名称和缩写?

nic*_*ckf 15 php timezone

从时区标识符开始,例如"America/Los_Angeles",如何在PHP中找到该时区的名称和缩写?例如:

'PST', 'Pacific Standard Time', 'PDT', 'Pacific Daylight Time'
Run Code Online (Sandbox Code Playgroud)

如果我只能获得短缩写('PST'和'PDT'),那就没问题了.

我看了看DateTimeZone::listAbbreviations(),并试着检查一下,看看哪个与我的身份相符,但是对于America/Los_Angeles,它发现"PST","PDT","PPT"和"PWT",这有点好奇.

Ten*_*eff 11

希望对你有帮助

<?php
    date_default_timezone_set('Europe/Sofia');
    echo date_default_timezone_get(); // Europe/Sofia
    echo ' => '.date('T'); // => EET
?>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但这只是中途.我已经有了ID("欧洲/索菲亚"),我正在寻找时区的名称("东欧时间"/"东欧夏令时") (2认同)

Joe*_* L. 11

我希望这有帮助:

function get_timezone_abbreviation($timezone_id)
{
    if($timezone_id){
        $abb_list = timezone_abbreviations_list();

        $abb_array = array();
        foreach ($abb_list as $abb_key => $abb_val) {
            foreach ($abb_val as $key => $value) {
                $value['abb'] = $abb_key;
                array_push($abb_array, $value);
            }
        }

        foreach ($abb_array as $key => $value) {
            if($value['timezone_id'] == $timezone_id){
                return strtoupper($value['abb']);
            }
        }
    }
    return FALSE;
}
Run Code Online (Sandbox Code Playgroud)

get_timezone_abbreviation( '美国/纽约');

你得到:

美东时间


aja*_*y p 7

希望对你有帮助

<?php
$dateTime = new DateTime();
$dateTime->setTimeZone(new DateTimeZone('America/Havana'));
echo $dateTime->format('T');
?>
Run Code Online (Sandbox Code Playgroud)