Sebastian Becker: date(), Unix Timestamp und Zeitzone

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

  1. 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

    1. 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

      1. 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