strtotime und die Winterzeitumstellung
Christian
- php
'n Abend allerseits,
folgender Code...
<?php
$a = array("Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday");
for($i=0;$i<7;$i++){
$s = strtotime("this $a[$i]");
echo $s."<br>".date("r",$s)."<br><br>";
}
?>
... gibt Folgendes aus:
1130536800
Sat, 29 Oct 2005 00:00:00 +0200
1130623200
Sun, 30 Oct 2005 00:00:00 +0200
1130709600
Sun, 30 Oct 2005 23:00:00 +0100
1130796000
Mon, 31 Oct 2005 23:00:00 +0100
1130882400
Tue, 1 Nov 2005 23:00:00 +0100
1130968800
Wed, 2 Nov 2005 23:00:00 +0100
1131055200
Thu, 3 Nov 2005 23:00:00 +0100
Ich habe also das Problem, dass mir durch die Umstellung auf Winterzeit unter Benutzung von strtotime("this ...") jeweils eine Stunde zu dem gewünschten Tag fehlt.
Ich hätte auch wirklich gern den Timestamp von 0.00 Uhr, also pauschal ne Stunde draufrechnen würde eventuell an anderer Stelle Probleme bereiten, was ich jetzt aber auch nicht überblicken kann.
Für Lösungsvorschläge wäre ich dankbar.
Grüße aus Münster
Christian
hi,
Ich habe also das Problem, dass mir durch die Umstellung auf Winterzeit unter Benutzung von strtotime("this ...") jeweils eine Stunde zu dem gewünschten Tag fehlt.
Bitte was?
Keine Angst, es gehen keine Stunden einfach "verloren".
1130536800
Sat, 29 Oct 2005 00:00:00 +02001130623200
Sun, 30 Oct 2005 00:00:00 +02001130709600
Sun, 30 Oct 2005 23:00:00 +0100
Fällt dir hier was auf?
Es ist nicht mehr +0200, also GMT plus zwei Stunden, sondern nur noch +0100.
Wo also fehlt da jetzt irgendwas?
Ich hätte auch wirklich gern den Timestamp von 0.00 Uhr
Dann nutze doch mktime() o.ä.
gruß,
wahsaga
Hi,
Ich habe also das Problem, dass mir durch die Umstellung auf Winterzeit unter Benutzung von strtotime("this ...") jeweils eine Stunde zu dem gewünschten Tag fehlt.
Bitte was?
Keine Angst, es gehen keine Stunden einfach "verloren".
Ich sagte ja auch nicht, dass eine Stunde verloren gegangen ist...
Fällt dir hier was auf?
Es ist nicht mehr +0200, also GMT plus zwei Stunden, sondern nur noch +0100.
Ja, das ist mir aufgefallen. Aber was bringt mir die Erkenntnis?
Ich hätte auch wirklich gern den Timestamp von 0.00 Uhr
Dann nutze doch mktime() o.ä.
...
Dann muss ich also erstmal checken, welcher Tag ist und dann so und so viel Tage draufrechnen?
Die Funktion strtotime gibts ja nicht umsonst... gibts da keine bessere Lösung?
Gruß
Christian
Gibt's vielleicht eine Funktion, die mir sagen kann, ob der Timestamp in der Sommer- oder Winterzeit liegt?
Hey, ich meine, selbst Win95 hat das mit der Zeitumstellung gemerkt, das muss doch auch irgendwie in PHP hinzukriegen sein?
Wenns Winterzeit ist, lass ich halt immer 3600 addieren...
Grüße
Christian
echo $begrüßung;
Gibt's vielleicht eine Funktion, die mir sagen kann, ob der Timestamp in der Sommer- oder Winterzeit liegt?
date('I', $timestamp);
Wenns Winterzeit ist, lass ich halt immer 3600 addieren...
Das PHP-Handbuch gibt auf den Seiten zu den Datums- und Zeit-Funktionen einige Hinweise, wie man mit dem Sommerzeit-Problem umgehen kann.
echo "$verabschiedung $name";
echo $begrüßung;
Ich habe also das Problem, dass mir durch die Umstellung auf Winterzeit unter Benutzung von strtotime("this ...") jeweils eine Stunde zu dem gewünschten Tag fehlt.
Ich hätte auch wirklich gern den Timestamp von 0.00 Uhr, also pauschal ne Stunde draufrechnen würde eventuell an anderer Stelle Probleme bereiten, was ich jetzt aber auch nicht überblicken kann.
Der Timestamp ist nun mal so definiert, dass er die Anzahl der Sekunden seit 01.01.1970 00:00 Uhr und zwar in GMT/UTC angibt. Er ist somit weltweit eindeutig und lässt sich auch nicht durch lokale und gesetzliche Besonderheiten beeinflussen.
echo "$verabschiedung $name";