Signatur
Beschreibung
intltz_get_raw_offset() gibt den Basis-Offset einer IntlTimeZone-Instanz gegenüber UTC/GMT in Millisekunden zurück. Im Gegensatz zu intltz_get_offset() wird dabei keine Sommerzeitkorrektur (DST) berücksichtigt – es handelt sich ausschließlich um den fest definierten Zeitzonen-Offset.
Diese Funktion ist nützlich, wenn man den unveränderlichen Standardoffset einer Zeitzone ermitteln möchte, unabhängig davon, ob zum aktuellen Zeitpunkt Sommerzeit gilt oder nicht. Typische Anwendungsfälle sind die Anzeige von Zeitzonen-Informationen oder Berechnungen, bei denen DST separat behandelt werden soll.
Die Funktion ist die prozedurale Entsprechung der Methode IntlTimeZone::getRawOffset() und kann alternativ mit der objektorientierten Schnittstelle verwendet werden.
Der Rückgabewert ist ein Integer in Millisekunden. Für die Umrechnung in Stunden dividiert man durch 3600000.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $timezone Pflicht | IntlTimeZone | Eine gültige IntlTimeZone-Instanz, deren roher GMT-Offset abgefragt werden soll. |
Rückgabewert
Beispiele
Rohen Offset einer Zeitzone ermitteln
<?php
$tz = IntlTimeZone::createTimeZone('Europe/Berlin');
$rawOffset = intltz_get_raw_offset($tz);
// Umrechnung von Millisekunden in Stunden
$stunden = $rawOffset / 3600000;
echo "Roher GMT-Offset für Europe/Berlin: " . $rawOffset . " ms\n";
echo "Das entspricht: " . $stunden . " Stunden\n";
Vergleich von rohem Offset und aktuellem Offset (inkl. DST)
<?php
$tz = IntlTimeZone::createTimeZone('America/New_York');
$rawOffset = intltz_get_raw_offset($tz);
// Aktuellen Offset inkl. DST ermitteln
$jetzt = (int)(microtime(true) * 1000);
$rawSave = 0;
$dstSave = 0;
$tz->getOffset($jetzt, false, $rawSave, $dstSave);
echo "Roher Offset (ohne DST): " . ($rawOffset / 3600000) . " Stunden\n";
echo "Aktueller Offset (mit DST): " . (($rawSave + $dstSave) / 3600000) . " Stunden\n";
echo "DST-Anteil: " . ($dstSave / 3600000) . " Stunden\n";
// Wichtig · Fallstricke
Hinweis zur Einheit: Der Rückgabewert ist in Millisekunden, nicht in Sekunden oder Stunden. Eine Verwechslung kann zu falschen Berechnungen führen – zur Umrechnung in Sekunden durch 1000, in Stunden durch 3600000 dividieren.
DST-Unterschied: Diese Funktion berücksichtigt keine Sommerzeit. Wenn der tatsächliche Offset zu einem bestimmten Zeitpunkt benötigt wird, sollte stattdessen IntlTimeZone::getOffset() bzw. intltz_get_offset() verwendet werden.
Die Funktion setzt die ICU-Bibliothek voraus. Bei sehr alten PHP-Installationen ohne die intl-Erweiterung ist sie nicht verfügbar.