Wer hat recht ??? (UnixZeitstempel)

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
SimonSimCity
Beiträge: 132
Registriert: 14.01.2007 00:49

Wer hat recht ??? (UnixZeitstempel)

Beitrag von SimonSimCity »

Hier der PHP-Code:

Code: Alles auswählen

echo "1209765540|".date("D M j G:i:s T Y", "1209765540");
echo mktime(0, 59, 21, 5, 2, 2008);
Hier der PureBasic-Code:

Code: Alles auswählen

Debug (Str(1209765540)+"|"+FormatDate("%yyyy-%mm-%dd", 1209765540)+"|"+FormatDate("%hh:%ii:%ss", 1209765540))
Debug Date(2008, 5, 2, 21, 59, 0)
Für diejenigen, die es nicht ausführen können:
DEBUG PHP
1209765540|Fri May 2 23:59:00 CEST 2008
1209758340

DEBUG PB
[08:30:33] Warte auf den Start des Executable...
[08:30:33] Executable gestartet.
[08:30:34] [Debug] 1209765540|2008-05-02|21:59:00
[08:30:34] [Debug] 1209765540
[08:30:34] Die Programmausführung ist abgeschlossen.
Ich gehe hier davon aus, dass es sich um einen Bug von PB handelt ....

Wenn ich den PB-Wert um die Zahl 7200 (60sec*60sec*2Std) ergänze stimmt das Ergebniss ....

Aber wenn ich diesen PHP-Code ausführen lasse, kommt '-3600' raus :mrgreen:

Code: Alles auswählen

echo mktime(0, 0, 0, 1, 1, 1970);
Dass mir da jetzt 2 Stunden fehlen kann ich auch nicht erklären ...

Hier ein Zitat vom PHP-Manual für den Befehl MKtime:
Gibt den Unix Timestamp/Zeitstempel an Hand der gegebenen Argumente zurück. Der Zeitstempel ist ein long-integer-Wert, der die Anzahl der Sekunden zwischen der UNIX Epoche (January 1 1970 00:00:00 GMT) und der angegebenen Zeit enthält.
Benutzeravatar
SimonSimCity
Beiträge: 132
Registriert: 14.01.2007 00:49

Beitrag von SimonSimCity »

Ich les hier grad weiter unten in den Comments:
I think it is important to note that the timestamp returned is based upon the number of seconds from the epoch GMT, and then modified by the time zone settings on the server.

Thus...

mktime(0,0,0,1,1,1970) will not always return 0. For example with the US eastern time zone (GMT-5) will return 18000 (5 hours past the epoch) and the same function with the time zone set to the US pacific time zone (GMT-8) will return 28800 (8 hours past the epoch).

In an instance where you want time zone independence, you should use the function gmmktime()
Aber das rechtfertigt nur eine der 2 fehlenden Stunden ....
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Hängt das möglicherweise mit der Sommerzeit zusammen?
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Falo hat geschrieben:Hängt das möglicherweise mit der Sommerzeit zusammen?
Jepp, das PHP-Skript zeigt ja hinten auch "CEST" an, was für Central European Summer Time steht. Und das entspricht GMT+2.

SimonSimCity hat geschrieben:Ich gehe hier davon aus, dass es sich um einen Bug von PB handelt ....
Ich finde es erstaunlich, wie schnell PB immer irgendwelche vermeintlichen "Bugs" zugeschoben werden... :roll:
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
SimonSimCity
Beiträge: 132
Registriert: 14.01.2007 00:49

Beitrag von SimonSimCity »

Ich fürchte ihr habt beide unrecht:

Nach langem rumprobieren hab ich die Stelle gefunden:

Hier der PHP-Code ...

Code: Alles auswählen

echo mktime(2, 0, 0, 3, 25, 2007);
echo "<br />";
echo mktime(3, 0, 0, 3, 25, 2007);
echo "<br />";
Der Fehler lag echt nicht an PB :-) sry ...

DEBUG von PHP
1174784400
1174784400
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

<OT>
SimonSimCity hat geschrieben:PureBasic 4.10 Beta 3
Signatur noch nicht aktualisiert? ;-)

</OT>

Grüße ... Kiffi
a²+b²=mc²
Antworten