Signatur
Beschreibung
timezone_abbreviations_list() liefert eine vollständige Liste aller von der IANA-Zeitzonendatenbank unterstützten Zeitzonenabkürzungen. Das zurückgegebene Array ist assoziativ, wobei die Schlüssel die Abkürzungen in Kleinbuchstaben sind (z. B. "cet", "utc") und die Werte jeweils ein numerisch indiziertes Array von Einträgen darstellen.
Jeder Eintrag ist wiederum ein assoziatives Array mit drei Schlüsseln: dst (boolesches Flag für Sommerzeit), offset (der UTC-Versatz in Sekunden) und timezone_id (der vollständige IANA-Zeitzonenname wie "Europe/Berlin" oder null). Eine Abkürzung kann mehrere Einträge haben, da z. B. "cst" für verschiedene Zeitzonen weltweit steht.
Die Funktion eignet sich, um eine Abkürzung in einen vollständigen Zeitzonennamen aufzulösen, eine Dropdown-Liste aller Abkürzungen zu erstellen oder zu prüfen, ob eine bestimmte Abkürzung existiert. Sie ist das prozedurale Pendant zur Methode DateTimeZone::listAbbreviations().
Rückgabewert
dst (bool), offset (int, Sekunden relativ zu UTC) und timezone_id (string|null) enthält.Beispiele
Grundlegende Ausgabe der Abkürzungsliste
<?php
$abkürzungen = timezone_abbreviations_list();
// Alle Einträge für 'cet' ausgeben
foreach ($abkürzungen['cet'] as $eintrag) {
echo 'DST: ' . ($eintrag['dst'] ? 'ja' : 'nein') . ', ';
echo 'Offset: ' . ($eintrag['offset'] / 3600) . 'h, ';
echo 'Zeitzone: ' . $eintrag['timezone_id'] . PHP_EOL;
}
Abkürzung in vollständige Zeitzonennamen auflösen
<?php
function abbrevToTimezoneIds(string $abkuerzung): array
{
$liste = timezone_abbreviations_list();
$key = strtolower($abkuerzung);
if (!isset($liste[$key])) {
return [];
}
$ids = array_column($liste[$key], 'timezone_id');
return array_unique(array_filter($ids));
}
$ids = abbrevToTimezoneIds('CST');
foreach ($ids as $id) {
echo $id . PHP_EOL;
}
Prüfen, ob eine Zeitzonenabkürzung existiert
<?php
function isValidTimezoneAbbrev(string $abkuerzung): bool
{
$liste = timezone_abbreviations_list();
return isset($liste[strtolower($abkuerzung)]);
}
var_dump(isValidTimezoneAbbrev('UTC')); // true
var_dump(isValidTimezoneAbbrev('XYZ')); // false
// Wichtig · Fallstricke
Achtung: Zeitzonenabkürzungen sind nicht eindeutig. So steht "cst" sowohl für Central Standard Time (UTC−6) in Nordamerika als auch für China Standard Time (UTC+8). Verwende daher für zuverlässige Zeitberechnungen immer vollständige IANA-Zeitzonen-IDs wie "America/Chicago" oder "Asia/Shanghai".
Die zurückgegebene Liste hängt von der auf dem Server installierten Zeitzonendatenbank (tzdata) ab. Unterschiedliche PHP-Versionen oder Betriebssysteme können leicht abweichende Ergebnisse liefern. Unter Windows nutzt PHP eine eigene, gebündelte Zeitzonendatenbank.