Start · Sprachen · PHP · Referenz · intltz_get_region

intltz_get_region

Funktion

Liefert den zweistelligen Regionscode (z. B. Ländercode) zur angegebenen IANA-Zeitzonen-ID.

seit PHP 5.5.0 Kategorie: string

Signatur

intltz_get_region(string $timezoneId): string|false

Beschreibung

intltz_get_region() ist die prozedurale Variante der Methode IntlTimeZone::getRegion() und gibt den ISO-3166-Ländercode (bzw. den UN-M.49-Regionscode) zurück, der mit einer IANA-Zeitzonen-ID verknüpft ist. Üblicherweise handelt es sich um einen zweistelligen Großbuchstaben-Code wie 'DE' für Deutschland oder 'US' für die USA.

Die Funktion ist nützlich, wenn Sie aus einer bekannten Zeitzone auf die zugehörige geografische Region schließen möchten, etwa um Nutzern länderspezifische Inhalte anzuzeigen oder Zeitzonen nach Regionen zu gruppieren. Sie basiert auf der ICU-Zeitzonendatenbank und verhält sich entsprechend der dort hinterlegten Zuordnungen.

Für "generische" Zeitzonen wie 'UTC' oder 'Etc/GMT', die keiner geografischen Region zugeordnet sind, gibt die Funktion false zurück. Auch bei ungültigen Zeitzonen-IDs wird false zurückgeliefert, weshalb der Rückgabewert stets geprüft werden sollte.

Parameter

Name Typ Default Beschreibung
$timezoneId Pflicht string Eine gültige IANA-Zeitzonen-ID (z. B. 'Europe/Berlin' oder 'America/New_York'), für die der Regionscode ermittelt werden soll.

Rückgabewert

Typ
string|false
Beschreibung
Gibt einen zweistelligen ISO-3166-Ländercode als String zurück (z. B. 'DE'), wenn die Zeitzone einer Region zugeordnet ist. Gibt false zurück, wenn die Zeitzonen-ID ungültig ist oder keiner geografischen Region (wie bei 'UTC') zugeordnet werden kann.

Beispiele

Regionscode für eine europäische Zeitzone ermitteln

<?php
$region = intltz_get_region('Europe/Berlin');
if ($region !== false) {
    echo 'Region für Europe/Berlin: ' . $region . PHP_EOL;
} else {
    echo 'Keine Region gefunden.' . PHP_EOL;
}

$region2 = intltz_get_region('America/New_York');
echo 'Region für America/New_York: ' . $region2 . PHP_EOL;
Region für Europe/Berlin: DE Region für America/New_York: US

Verhalten bei nicht-geografischen und ungültigen Zeitzonen

<?php
$timezones = ['UTC', 'Etc/GMT', 'Europe/Vienna', 'Ungültige/Zone'];

foreach ($timezones as $tz) {
    $region = intltz_get_region($tz);
    if ($region !== false) {
        echo "$tz => $region" . PHP_EOL;
    } else {
        echo "$tz => (keine Region)" . PHP_EOL;
    }
}
UTC => (keine Region) Etc/GMT => (keine Region) Europe/Vienna => AT Ungültige/Zone => (keine Region)

// Wichtig · Fallstricke

Achtung: Die zurückgegebenen Regionscodes basieren auf der ICU-Zeitzonendatenbank, die je nach installierter ICU-Version leicht abweichen kann. Stellen Sie sicher, dass Ihre ICU-Version aktuell ist, um präzise Regionszuordnungen zu erhalten.

Die Funktion ist eine prozedurale Entsprechung zu IntlTimeZone::getRegion(). In objektorientiertem Code empfiehlt sich die Verwendung der Methode direkt auf einem IntlTimeZone-Objekt.