W3docs

timezone_abbreviations_list()

Erfahren Sie, wie Sie timezone_abbreviations_list() und DateTimeZone::listAbbreviations() in PHP verwenden, um Zeitzonenabkürzungen abzurufen.

Einführung

Eine Zeitzonenabkürzung ist ein kurzer 2-5 Buchstaben langer Code wie EST, GMT oder CEST, der den Versatz einer Region von der koordinierten Weltzeit (UTC) angibt. PHP kann alle bekannten Abkürzungen auflisten, zusammen mit den IANA-Zeitzonenbezeichnern (wie America/New_York), denen sie zugeordnet sind.

Dieses Kapitel erklärt, wie man diese Liste abruft, warum Abkürzungen allein unzuverlässig sind, und bietet eine Referenztabelle mit gängigen Codes.

Warnung

timezone_abbreviations_list() wurde in PHP 8.1 als veraltet markiert und in PHP 8.2 entfernt. Ab PHP 8.2 verwenden Sie stattdessen das entsprechende DateTimeZone::listAbbreviations(). Beide geben dieselbe Datenstruktur zurück.

Warum Abkürzungen mehrdeutig sind

Im Gegensatz zu IANA-Bezeichnern sind Abkürzungen nicht eindeutig. CST allein kann Central Standard Time (Nordamerika, UTC-6), China Standard Time (UTC+8) oder Cuba Standard Time bedeuten. BST ist British Summer Time oder Bangladesh Standard Time. Da derselbe Code auf mehrere Regionen verweist, sollten Sie niemals eine Zeitzone anhand ihrer Abkürzung speichern oder konfigurieren. Lösen Sie immer in einen IANA-Bezeichner auf (zum Beispiel Europe/London) und übergeben Sie diesen an date_default_timezone_set() oder ein DateTimeZone-Objekt.

Genau dafür ist die Abkürzungsliste gedacht: einen empfangenen Code (beispielsweise aus Benutzereingaben) in die möglichen Bezeichner umzuwandeln — siehe timezone_name_from_abbr(), um eine einzelne Übereinstimmung auszuwählen.

Alle Abkürzungen auflisten

Beide Funktionen geben ein assoziatives Array zurück. Jeder Schlüssel ist eine kleingeschriebene Abkürzung; jeder Wert ist ein Array von Zonen, wobei jede Zone drei Felder enthält:

  • dsttrue, wenn der Eintrag eine Sommerzeit-Variante ist.
  • offset — der UTC-Versatz in Sekunden.
  • timezone_id — der IANA-Bezeichner (kann null sein für Versätze ohne benannte Zone).
<?php
// PHP 8.2+ (use timezone_abbreviations_list() on older versions)
$abbreviations = DateTimeZone::listAbbreviations();

print_r($abbreviations['acst']);

Ausgabe:

Array
(
    [0] => Array
        (
            [dst] =>
            [offset] => 34200
            [timezone_id] => Australia/Adelaide
        )
    ...
)

Der Versatz 34200 Sekunden entspricht 34200 / 3600 = 9,5 Stunden, also UTC+9:30.

Abkürzungen zu Bezeichnern und Versätzen zuordnen

Um die rohe Struktur in lesbare Zeilen umzuwandeln, iterieren Sie das äußere Array und dann jede Zone:

<?php
$abbreviations = DateTimeZone::listAbbreviations();

foreach ($abbreviations as $abbr => $zones) {
    foreach ($zones as $zone) {
        $hours = $zone['offset'] / 3600;
        printf(
            "%-5s => %-25s (UTC %+.1f)\n",
            strtoupper($abbr),
            $zone['timezone_id'] ?? '(unnamed)',
            $hours
        );
    }
}

Einige Beispielzeilen der Ausgabe:

GMT   => Europe/London             (UTC +0.0)
GMT   => Africa/Abidjan            (UTC +0.0)
CET   => Europe/Paris              (UTC +1.0)

Die Liste ist umfangreich (Tausende von Zeilen), daher filtern Sie sie in der Praxis auf die Codes, die Sie benötigen, anstatt alles auszugeben.

Gängige Zeitzonenabkürzungen

Nachfolgend eine Referenzliste gängiger Zeitzonenabkürzungen (die Array-Schlüssel sind in PHP kleingeschrieben; hier zur besseren Lesbarkeit großgeschrieben):

  • ACDT - Australian Central Daylight Time
  • ACST - Australian Central Standard Time
  • ACT - Acre Time
  • ADT - Atlantic Daylight Time
  • AEDT - Australian Eastern Daylight Time
  • AEST - Australian Eastern Standard Time
  • AFT - Afghanistan Time
  • AKDT - Alaska Daylight Time
  • AKST - Alaska Standard Time
  • AMST - Amazon Summer Time
  • AMT - Amazon Time
  • ART - Argentina Time
  • AST - Atlantic Standard Time
  • AWST - Australian Western Standard Time
  • AZOST - Azores Standard Time
  • AZT - Azerbaijan Time
  • BDT - Brunei Time
  • BNT - Brunei Darussalam Time
  • BOT - Bolivia Time
  • BRST - Brasilia Summer Time
  • BRT - Brasilia Time
  • BST - British Summer Time
  • BTT - Bhutan Time
  • CAT - Central Africa Time
  • CCT - Cocos Islands Time
  • CDT - Central Daylight Time
  • CEST - Central European Summer Time
  • CET - Central European Time
  • CHADT - Chatham Island Daylight Time
  • CHAST - Chatham Island Standard Time
  • CHOT - Choibalsan Standard Time
  • CHST - Chamorro Standard Time
  • CHT - Chuuk Time
  • CKT - Cook Island Time
  • CLST - Chile Summer Time
  • CLT - Chile Standard Time
  • COT - Colombia Time
  • CST - Central Standard Time
  • CT - Central Time
  • CVT - Cape Verde Time
  • CWST - Central Western Standard Time
  • CXT - Christmas Island Time
  • DAVT - Davis Time
  • DDUT - Dumont-d'Urville Time
  • EASST - Easter Island Summer Time
  • EAST - Easter Island Standard Time
  • EAT - Eastern Africa Time
  • ECT - Eastern Caribbean Time
  • EDT - Eastern Daylight Time
  • EEST - Eastern European Summer Time
  • EET - Eastern European Time
  • EGST - Eastern Greenland Summer Time
  • EGT - Eastern Greenland Time
  • EIT - Eastern Indonesian Time
  • EST - Eastern Standard Time
  • FET - Further Eastern European Time
  • FJT - Fiji Time
  • FKST - Falkland Islands Summer Time
  • FKT - Falkland Islands Time
  • FNT - Fernando de Noronha Time
  • GALT - Galapagos Time
  • GAMT - Gambier Islands Time
  • GET - Georgia Standard Time
  • GFT - French Guiana Time
  • GILT - Gilbert Island Time
  • GIT - Gambier Island Time
  • GMT - Greenwich Mean Time
  • GST - Gulf Standard Time
  • GYT - Guyana Time
  • HADT - Hawaii-Aleutian Daylight Time
  • HAST - Hawaii-Aleutian Standard Time
  • HKT - Hong Kong Time
  • HST - Hawaii Standard Time
  • ICT - Indochina Time
  • IDT - Israel Daylight Time
  • IRDT - Iran Daylight Time
  • IRST - Iran Standard Time
  • IST - India / Irish / Israel Standard Time (ambiguous)
  • JST - Japan Standard Time
  • KST - Korea Standard Time
  • MDT - Mountain Daylight Time
  • MSK - Moscow Standard Time
  • MST - Mountain Standard Time
  • NZDT - New Zealand Daylight Time
  • NZST - New Zealand Standard Time
  • PDT - Pacific Daylight Time
  • PHT - Philippine Time
  • PKT - Pakistan Standard Time
  • PST - Pacific Standard Time
  • SGT - Singapore Time
  • UTC - Coordinated Universal Time
  • WAT - West Africa Time
  • WEST - Western European Summer Time
  • WET - Western European Time
  • WIB - Western Indonesian Time
  • WITA - Central Indonesian Time

Die obige Liste ist eine gängige Teilmenge. DateTimeZone::listAbbreviations() gibt das vollständige Array aller registrierten Abkürzungen zurück, das Sie programmgesteuert iterieren sollten (wie oben gezeigt), anstatt sich auf eine manuell gepflegte Liste zu verlassen.

Verwandte Funktionen

Übung

Übung
Welche der folgenden sind gültige Zeitzonenabkürzungen gemäß der PHP-Zeitzonenabkürzungsliste auf W3docs?
Welche der folgenden sind gültige Zeitzonenabkürzungen gemäß der PHP-Zeitzonenabkürzungsliste auf W3docs?
Was this page helpful?