获取所有时区

Pra*_*ngh 0 php timezone datetime

我正在尝试获取所有时区。我所做的是:

$tzlist = DateTimeZone::listIdentifiers(DateTimeZone::ALL);

它给了我一个这样的数组:

Array
(
    [0] => Africa/Abidjan
    [1] => Africa/Accra
    [2] => Africa/Addis_Ababa
    [3] => Africa/Algiers
    [4] => Africa/Asmara
    [5] => Africa/Bamako
    [6] => Africa/Bangui
    [7] => Africa/Banjul
    [8] => Africa/Bissau....
Run Code Online (Sandbox Code Playgroud)

我想将所有时区的时区名称更改为完整时区名称,例如

Australia/Darwin = AUS Central Standard Time
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看示例

use*_*918 5

您可以使用IntlTimeZone::getDisplayName(),例如:

echo IntlTimeZone::createTimeZone("Australia/Darwin")->getDisplayName();
Run Code Online (Sandbox Code Playgroud)

输出:

Australian Central Standard Time
Run Code Online (Sandbox Code Playgroud)

尽管为了夏令时,许多人全年都会发生变化。如果您想检查这一点并添加备用日光/夏季显示名称,您可以执行以下操作:

$tz = IntlTimeZone::createTimeZone("America/Los_Angeles");
echo $tz->getDisplayName(), "\n";
if ($tz->useDaylightTime()) {
    echo $tz->getDisplayName(true);
}
Run Code Online (Sandbox Code Playgroud)

输出:

Pacific Standard Time
Pacific Daylight Time
Run Code Online (Sandbox Code Playgroud)