Start · Sprachen · PHP · Referenz · intltz_create_default

intltz_create_default

Funktion

Erstellt eine Kopie der aktuellen Standard-Zeitzone des Systems und gibt sie als <code>IntlTimeZone</code>-Objekt zurück.

seit PHP 5.5.0 Kategorie: string

Signatur

intltz_create_default(): IntlTimeZone

Beschreibung

intltz_create_default() ist die prozedurale Variante von IntlTimeZone::createDefault() und liefert die Standard-Zeitzone des laufenden PHP-Hosts als IntlTimeZone-Objekt. Diese Zeitzone entspricht in der Regel dem Wert, der durch die PHP-Einstellung date.timezone in der php.ini oder durch einen Aufruf von date_default_timezone_set() festgelegt wurde.

Das zurückgegebene Objekt ist eine eigenständige Kopie der internen Standardzeitzone; Änderungen daran wirken sich nicht auf die globale Zeitzoneneinstellung aus. Die Funktion ist besonders nützlich, wenn man mit der Intl-Erweiterung (z. B. IntlDateFormatter oder IntlCalendar) arbeitet und dabei die systemseitig konfigurierte Zeitzone verwenden möchte.

Da die Funktion auf der ICU-Bibliothek basiert, verwendet sie ICU-Zeitzonen-IDs (z. B. Europe/Berlin). Wenn die PHP-Standardzeitzone keiner ICU-Zeitzone exakt zugeordnet werden kann, wird als Fallback Etc/GMT oder eine äquivalente UTC-basierte Zeitzone verwendet.

Rückgabewert

Typ
IntlTimeZone
Beschreibung
Gibt immer ein IntlTimeZone-Objekt zurück, das eine Kopie der aktuell konfigurierten Standard-Zeitzone des Hosts repräsentiert. Die Funktion gibt niemals false oder null zurück.

Beispiele

Standard-Zeitzone des Systems ausgeben

<?php
// Setzt die Standard-Zeitzone über PHP-Funktion
date_default_timezone_set('Europe/Berlin');

$tz = intltz_create_default();

echo $tz->getID();         // Zeitzone-ID
echo PHP_EOL;
echo $tz->getDisplayName(); // Menschenlesbarer Name
Europe/Berlin Mitteleuropäische Zeit

Standard-Zeitzone mit IntlDateFormatter kombinieren

<?php
date_default_timezone_set('America/New_York');

$tz  = intltz_create_default();
$fmt = new IntlDateFormatter(
    'de_DE',
    IntlDateFormatter::LONG,
    IntlDateFormatter::LONG,
    $tz
);

// Aktuelles Datum und Uhrzeit in der Standard-Zeitzone formatieren
echo $fmt->format(time());
15. April 2025 um 10:30:00 Eastern-Normalzeit

// Wichtig · Fallstricke

Abhängigkeit von date.timezone: Ist keine Standard-Zeitzone gesetzt (weder in der php.ini noch per date_default_timezone_set()), kann PHP eine Warnung ausgeben und als Fallback UTC verwenden. Es empfiehlt sich daher, stets eine gültige Zeitzone zu konfigurieren.

ICU vs. PHP-Zeitzonen: Die ICU-Bibliothek und PHP verwenden weitestgehend dieselben IANA-Zeitzonen-IDs, jedoch kann es bei sehr alten oder ungebräuchlichen Zeitzonen zu Diskrepanzen kommen. Im Zweifelsfall den zurückgegebenen Wert von getID() prüfen.

Die Funktion ist identisch mit dem statischen Aufruf IntlTimeZone::createDefault().