Signatur
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
'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;
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;
}
}
// 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.