Signatur
Beschreibung
timezone_version_get() liefert die Versionsnummer der intern verwendeten Zeitzonendatenbank (basierend auf der IANA Time Zone Database), die PHP für Datums- und Zeitzonenberechnungen nutzt. Die zurückgegebene Zeichenkette hat typischerweise das Format YYYY.N, also beispielsweise 2024.1.
Diese Funktion ist nützlich, um sicherzustellen, dass auf dem Server eine ausreichend aktuelle Zeitzonendatenbank installiert ist. Gerade bei Anwendungen, die internationale Zeitzonen korrekt verarbeiten müssen, können veraltete Datenbankversionen zu falschen Zeitberechnungen führen, beispielsweise bei Ländern, die ihre Zeitumstellungsregeln geändert haben.
Die Funktion ist ein prozeduraler Alias für DateTimeZone::getVersion() (sofern vorhanden) und arbeitet direkt mit der PHP-internen Zeitzonendatenbank, die entweder aus der PECL-Erweiterung timezonedb oder der systemeigenen Installation stammt. Eine Aktualisierung über PECL (pecl install timezonedb) ist empfehlenswert, wenn die PHP-Version noch nicht auf dem neuesten Stand der Zeitzonendaten ist.
Rückgabewert
"2024.1". Die Zeichenkette folgt dem Format JJJJ.N (Jahr, gefolgt von einer Revisionsnummer).Beispiele
Aktuelle Zeitzonendatenbank-Version ausgeben
<?php
$version = timezone_version_get();
echo 'Zeitzonendatenbank-Version: ' . $version;
// Beispielausgabe: Zeitzonendatenbank-Version: 2024.1
Version prüfen und Warnung ausgeben
<?php
$version = timezone_version_get();
// Mindeststammjahr aus der Versionsnummer extrahieren
[$year] = explode('.', $version);
if ((int)$year < 2023) {
echo 'WARNUNG: Die Zeitzonendatenbank ist möglicherweise veraltet (Version: ' . $version . ').' . PHP_EOL;
echo 'Bitte aktualisieren Sie die timezonedb-Erweiterung via PECL.' . PHP_EOL;
} else {
echo 'Zeitzonendatenbank ist aktuell (Version: ' . $version . ').' . PHP_EOL;
}
// Wichtig · Fallstricke
Die Zeitzonendatenbank wird von der IANA gepflegt und regelmäßig aktualisiert. PHP bündelt eine bestimmte Version dieser Datenbank, die jedoch mit dem Release-Zyklus von PHP verknüpft ist. Für zeitkritische Anwendungen empfiehlt es sich, die PECL-Erweiterung timezonedb zu installieren und aktuell zu halten, da damit unabhängig von PHP-Versionsupdates die neuesten Zeitzonendaten eingespielt werden können (pecl install timezonedb bzw. pecl upgrade timezonedb).
Zu beachten ist, dass timezone_version_get() seit PHP 5.3.0 verfügbar ist. In älteren PHP-Versionen steht diese Funktion nicht zur Verfügung.