Signatur
Beschreibung
datefmt_get_timezone_id() ist die prozedurale Entsprechung zur Methode IntlDateFormatter::getTimezoneId() und gibt die aktuell im Formatter eingestellte Zeitzonen-ID als Zeichenkette zurück (z. B. "Europe/Berlin" oder "UTC").
Die Funktion ist nützlich, wenn man überprüfen möchte, welche Zeitzone ein Formatter-Objekt verwendet, bevor Datums- oder Zeitwerte formatiert bzw. geparst werden. So können unerwartete Zeitverschiebungen frühzeitig erkannt und korrigiert werden.
Sie gehört zur Intl-Erweiterung (ICU) und arbeitet eng mit datefmt_set_timezone() zusammen. Die zurückgegebene ID entspricht dem CLDR/IANA-Zeitzonen-Format und kann direkt an DateTimeZone- oder ICU-Funktionen übergeben werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $formatter Pflicht | IntlDateFormatter | Das IntlDateFormatter-Objekt, dessen Zeitzonen-ID abgefragt werden soll. |
Rückgabewert
"Europe/Berlin"). Im Fehlerfall wird false zurückgegeben.Beispiele
Zeitzonen-ID eines Formatters auslesen
<?php
$formatter = datefmt_create(
'de_DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'Europe/Berlin',
IntlDateFormatter::GREGORIAN
);
$timezoneId = datefmt_get_timezone_id($formatter);
echo $timezoneId; // Europe/Berlin
Zeitzonen-ID nach Änderung der Zeitzone prüfen
<?php
$formatter = datefmt_create(
'en_US',
IntlDateFormatter::SHORT,
IntlDateFormatter::SHORT,
'America/New_York',
IntlDateFormatter::GREGORIAN
);
echo 'Vorher: ' . datefmt_get_timezone_id($formatter) . PHP_EOL;
// Zeitzone ändern
datefmt_set_timezone($formatter, 'Asia/Tokyo');
echo 'Nachher: ' . datefmt_get_timezone_id($formatter) . PHP_EOL;
OOP-Stil: getTimezoneId() als Methode
<?php
$formatter = new IntlDateFormatter(
'fr_FR',
IntlDateFormatter::LONG,
IntlDateFormatter::LONG,
'Europe/Paris'
);
// OOP-Äquivalent zu datefmt_get_timezone_id()
$id = $formatter->getTimezoneId();
echo $id;
// Wichtig · Fallstricke
Hinweis zur Intl-Erweiterung: Die Funktion steht nur zur Verfügung, wenn PHP mit der intl-Erweiterung kompiliert wurde (ab PHP 5.3). Ohne diese Erweiterung existiert weder die Funktion noch die Klasse IntlDateFormatter.
Ab PHP 5.5.0 wurde datefmt_set_timezone() eingeführt, das den älteren Parameter datefmt_set_timezone_id() ersetzt. Entsprechend sollte immer die aktuellere API verwendet werden. Die zurückgegebene ID kann von der Standardzeitzone abweichen, die in der php.ini unter date.timezone festgelegt ist.