date(), Unix Timestamp und Zeitzone
Sebastian Becker
- php
Hallo,
wenn ich der Funktion date() einen Unix Timestamp übergebe, gibt sie mir die lokale Zeit (MEZ) aus. Woher kommt die Information über den Offset und wie kann ich UTC/GMT ausgeben?
Zusatzfrage:
Wie kann ich ggf. automatisch einen Sommerzeit-Offset hinzugeben?
Danke, Grüße,
Sebastian
<?php
// Ausgabe in MEZ
$unix_timestamp = time();
$zeit = date("H:i:s",$unix_timestamp);
echo "Unix Timestamp: $unix_timestamp\n<br>\n";
echo "$zeit\n<br>\n<br>\n";
// Zeitpunkt 0 zur Kontrolle
$zeitnull = date("H:i:s",0); // zur Kontrolle
echo "Unix Timestamp: 0\n<br>\n";
echo "$zeitnull\n<br>\n";
?>
Ergebnis:
Unix Timestamp: 1046641187
22:39:47
Unix Timestamp: 0
01:00:00
Hi!
wenn ich der Funktion date() einen Unix Timestamp übergebe, gibt sie mir die lokale Zeit (MEZ) aus. Woher kommt die Information über den Offset und wie kann ich UTC/GMT ausgeben?
Die Information kommt aus dem System, da "tickt" eine Uhr auf die PHP dann zugreift. Wie Du den Offset ausgeben kannst steht im Manual bei den Parametern zu date(), für GMT gibt es extra Funktionen, siehe: http://php.net/datetime
Zusatzfrage:
Wie kann ich ggf. automatisch einen Sommerzeit-Offset hinzugeben?
Das passiert doch automatisch, oder? Unter den datetime Funktionen findest Du auch eine Funktion die das Datum nach Deinen vogegebenen lokalen Gegebenheiten formatiert. Wie man direkt ermittelt ob Sommerzeit ist oder nicht weiß ich nicht.
Grüße
Andreas
Hi
Zusatzfrage:
Wie kann ich ggf. automatisch einen Sommerzeit-Offset hinzugeben?
Wie man direkt ermittelt ob Sommerzeit ist oder nicht weiß ich nicht.
date('I'); // Gibt für Sommerzeit 1, bei normalzeit 0 zurück.
Heizer
Hi!
date('I'); // Gibt für Sommerzeit 1, bei normalzeit 0 zurück.
Ich _wußte_ das es das gibt, hatte es aber anscheinend überlesen, tja... ;-)
Danke für die Richtigstellung!
Grüße
Andreas