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