Start · Sprachen · PHP · Referenz · intltz_get_tz_data_version

intltz_get_tz_data_version

Funktion

Liefert die Version der von der ICU-Bibliothek verwendeten Zeitzonendatenbank (z. B. <code>2023c</code>).

seit PHP 5.5.0 Kategorie: string

Signatur

intltz_get_tz_data_version(): string|false

Beschreibung

intltz_get_tz_data_version() gibt die Version der Zeitzonendaten zurück, die von der aktuell eingebundenen ICU-Bibliothek (International Components for Unicode) verwendet werden. Diese Version entspricht dem IANA Time Zone Database (tzdata)-Release, auf dem die ICU-Daten basieren.

Die Funktion ist nützlich, wenn Anwendungen auf aktuelle Zeitzonendaten angewiesen sind – etwa bei der Berechnung von Sommerzeit-Übergängen oder bei der Arbeit mit historischen Zeiten. Durch Abfrage der Version lässt sich prüfen, ob die vorhandene ICU-Installation hinreichend aktuell ist.

Die Funktion ist das prozedurale Äquivalent zur statischen Methode IntlTimeZone::getTZDataVersion(). Beide liefern dasselbe Ergebnis.

Rückgabewert

Typ
string|false
Beschreibung
Gibt die Versionskennung der Zeitzonendaten als Zeichenkette zurück (z. B. "2023c"). Im Fehlerfall wird false zurückgegeben.

Beispiele

Zeitzonendaten-Version abfragen

<?php
$version = intltz_get_tz_data_version();

if ($version !== false) {
    echo "ICU-Zeitzonendaten-Version: " . $version . PHP_EOL;
} else {
    echo "Version konnte nicht ermittelt werden." . PHP_EOL;
}
ICU-Zeitzonendaten-Version: 2023c

Version prüfen und warnen wenn veraltet

<?php
$version = intltz_get_tz_data_version();

// IANA veröffentlicht Versionen wie '2023a', '2023b', '2023c' usw.
// Einfache Plausibilitätsprüfung: Jahr aus der Version extrahieren
if ($version !== false && preg_match('/^(\d{4})/', $version, $matches)) {
    $year = (int) $matches[1];
    if ($year < (int) date('Y') - 1) {
        echo "Warnung: Zeitzonendaten könnten veraltet sein (Version: $version)." . PHP_EOL;
    } else {
        echo "Zeitzonendaten sind aktuell (Version: $version)." . PHP_EOL;
    }
} else {
    echo "Version: $version" . PHP_EOL;
}
Zeitzonendaten sind aktuell (Version: 2023c)

// Wichtig · Fallstricke

Hinweis zur ICU-Version: Die zurückgegebene Zeitzonendaten-Version hängt von der auf dem Server installierten ICU-Bibliothek ab und kann von der systemweiten tzdata-Version abweichen, die PHP-Kernfunktionen wie date() verwenden. Für konsistentes Verhalten sollten beide Quellen möglichst auf demselben Stand sein.

Die prozedurale Funktion intltz_get_tz_data_version() ist identisch mit IntlTimeZone::getTZDataVersion() – welche Variante verwendet wird, ist Geschmackssache bzw. richtet sich nach dem gewählten Programmierstil (OOP vs. prozedural).