Start · Sprachen · PHP · Referenz · intltz_get_iana_id

intltz_get_iana_id

Funktion

Übersetzt einen beliebigen Zeitzonen-Bezeichner (z. B. Windows- oder ICU-Format) in den entsprechenden <code>IANA</code>-Zeitzonen-Bezeichner.

seit PHP 8.3.0 Kategorie: string

Signatur

intltz_get_iana_id(string $timezoneId): string|false

Beschreibung

intltz_get_iana_id() konvertiert einen Zeitzonen-Bezeichner in das standardisierte IANA-Format (auch bekannt als Olson-Datenbank, z. B. Europe/Berlin oder America/New_York). Dies ist besonders nützlich, wenn Zeitzonen-Bezeichner aus anderen Systemen (z. B. Windows-Zeitzonen wie W. Europe Standard Time) in das universell kompatible IANA-Format umgewandelt werden müssen.

Die Funktion nutzt intern die ICU-Bibliothek (International Components for Unicode), die eine Abbildungstabelle zwischen verschiedenen Zeitzonen-Systemen und IANA-Bezeichnern pflegt. Das Ergebnis hängt daher von der auf dem System installierten ICU-Version ab.

Typische Anwendungsfälle sind die Interoperabilität zwischen verschiedenen Betriebssystemen, die Normalisierung von Benutzereingaben oder die Konvertierung von Daten aus externen APIs, die nicht immer IANA-konforme Zeitzonen liefern.

  • Gibt false zurück, wenn der Bezeichner nicht aufgelöst werden kann.
  • Diese Funktion ist eine prozedurale Alternative zu IntlTimeZone::getIanaID().

Parameter

Name Typ Default Beschreibung
$timezoneId Pflicht string Der Zeitzonen-Bezeichner, der in einen IANA-Bezeichner umgewandelt werden soll. Kann ein ICU-, Windows- oder anderer systemspezifischer Bezeichner sein, z. B. W. Europe Standard Time oder Europe/Berlin.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den entsprechenden IANA-Zeitzonen-Bezeichner als string zurück, z. B. Europe/Berlin. Wenn der angegebene Bezeichner nicht in einen IANA-Bezeichner aufgelöst werden kann, wird false zurückgegeben.

Beispiele

IANA-ID eines bekannten ICU-Bezeichners ermitteln

<?php
// Einen bereits IANA-konformen Bezeichner übergeben
$ianaId = intltz_get_iana_id('Europe/Berlin');
var_dump($ianaId);

// Einen UTC-Bezeichner konvertieren
$utcId = intltz_get_iana_id('UTC');
var_dump($utcId);
string(13) "Europe/Berlin" string(3) "UTC"

Windows-Zeitzonen-Bezeichner in IANA umwandeln

<?php
// Windows-Zeitzone in IANA-Bezeichner konvertieren
$windowsTz = 'W. Europe Standard Time';
$ianaId = intltz_get_iana_id($windowsTz);

if ($ianaId !== false) {
    echo "IANA-Zeitzone: " . $ianaId . PHP_EOL;
} else {
    echo "Konvertierung fehlgeschlagen." . PHP_EOL;
}

// Ungültiger Bezeichner
$invalid = intltz_get_iana_id('Nicht/Existierend');
var_dump($invalid);
IANA-Zeitzone: Europe/Berlin bool(false)

// Wichtig · Fallstricke

ICU-Versionsabhängigkeit: Da die Funktion die ICU-Bibliothek nutzt, kann das Ergebnis je nach installierter ICU-Version variieren. Neuere ICU-Versionen enthalten aktuellere Abbildungstabellen. Prüfen Sie mit INTL_ICU_VERSION, welche ICU-Version aktiv ist.

Verfügbarkeit: Diese Funktion wurde erst in PHP 8.3.0 eingeführt. Für ältere PHP-Versionen kann die objektorientierte Methode IntlTimeZone::getIanaID() (ab PHP 8.3.0) oder eine manuelle Abbildungslösung verwendet werden.

Rückgabewert prüfen: Da die Funktion false zurückgeben kann, sollte der Rückgabewert stets mit === false geprüft werden, bevor er weiterverwendet wird.