Signatur
Beschreibung
intltz_use_daylight_time() ist die prozedurale Variante der Methode IntlTimeZone::useDaylightTime() und gibt zurück, ob die übergebene Zeitzone Sommerzeit (DST, Daylight Saving Time) berücksichtigt. Dies ist nützlich, wenn Anwendungen entscheiden müssen, ob eine Zeitzone überhaupt Uhrzeitumstellungen kennt.
Zeitzonen wie UTC oder Asia/Tokyo verwenden keine Sommerzeit und geben daher false zurück. Zeitzonen wie Europe/Berlin oder America/New_York hingegen kennen Sommerzeitumstellungen und geben true zurück.
Die Funktion macht keine Aussage darüber, ob aktuell Sommerzeit gilt – sie gibt lediglich an, ob die Zeitzone grundsätzlich Sommerzeit kennt. Um zu prüfen, ob zum aktuellen Zeitpunkt Sommerzeit aktiv ist, sollte IntlTimeZone::inDaylightTime() über ein IntlCalendar-Objekt verwendet werden.
Die Funktion ist Teil der ICU-Zeitzonen-API (Internationalization Components for Unicode) und eignet sich besonders für internationalisierte Anwendungen, die mit mehreren Zeitzonen umgehen müssen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $timezone Pflicht | IntlTimeZone | Eine gültige IntlTimeZone-Instanz, z. B. erzeugt durch IntlTimeZone::createTimeZone('Europe/Berlin'). |
Rückgabewert
true zurück, wenn die Zeitzone Sommerzeit verwendet, andernfalls false.Beispiele
Prüfung verschiedener Zeitzonen auf Sommerzeitunterstützung
<?php
$tzBerlin = IntlTimeZone::createTimeZone('Europe/Berlin');
$tzUtc = IntlTimeZone::createTimeZone('UTC');
$tzTokyo = IntlTimeZone::createTimeZone('Asia/Tokyo');
$tzNewYork = IntlTimeZone::createTimeZone('America/New_York');
var_dump(intltz_use_daylight_time($tzBerlin)); // bool(true)
var_dump(intltz_use_daylight_time($tzUtc)); // bool(false)
var_dump(intltz_use_daylight_time($tzTokyo)); // bool(false)
var_dump(intltz_use_daylight_time($tzNewYork)); // bool(true)
Zeitzonen filtern, die keine Sommerzeit verwenden
<?php
$zoneIds = ['Europe/Berlin', 'UTC', 'Asia/Tokyo', 'America/New_York', 'Pacific/Auckland'];
$withoutDST = array_filter($zoneIds, function (string $id): bool {
$tz = IntlTimeZone::createTimeZone($id);
return !intltz_use_daylight_time($tz);
});
echo implode(', ', $withoutDST);
// Wichtig · Fallstricke
Achtung: Die Funktion gibt true zurück, wenn die Zeitzone überhaupt Sommerzeit kennt – nicht ob sie gerade jetzt aktiv ist. Für die Prüfung, ob zum aktuellen oder einem bestimmten Zeitpunkt Sommerzeit gilt, muss ein IntlCalendar in Kombination mit IntlCalendar::inDaylightTime() verwendet werden.
Die objektorientierte Variante IntlTimeZone::useDaylightTime() liefert dasselbe Ergebnis und ist in modernem Code oft bevorzugt.