Problem mit Datum
Nats
- php
Hallo,
ich habe mit einem Script Probleme und verstehe das einfach nicht!
Das Problem tritt immer nur Ende Oktober innerhalb eines Jahres auf.
Hier mein Script:
<?
$time_lower = "1066600800";
$time_upper = "1067468400";
echo "von: ".date("d.m.y",$time_lower)." bis ".date("d.m.y",$time_upper).":<br><br>";
while($time_lower <= $time_upper) {
//Sa, So & gesetzliche Feiertage
if( (date("w", $time_lower) == 0) || (date("w", $time_lower) == 6) ) {
echo date("d.m.y",$time_lower)." Wochenende<br>";
}
//Sa, So & gesetzliche Feiertage
elseif( (date("w", $time_lower) == 1) || (date("w", $time_lower) == 5) ) {
echo date("d.m.y",$time_lower)."<br>";
}
$time_lower += 86400; // next day
}
?>
Als Ausgabe erhalte ich:
von: 20.10.03 bis 30.10.03:
20.10.03
24.10.03
25.10.03 Wochenende
26.10.03 Wochenende
26.10.03 Wochenende
27.10.03
Warum tritt hier der 26.10.03 zweimal auf?
Die Schleife addiert doch immer einen Tag hinzu???
Liegt das an der Zeitumstellung???
Es wär toll, wenn jemand ne Lösung wüßte ...
Gruss, Nats
Hallo,
Du addierst immer 24 Stunden. Da das gewünschte Datum aber gerade die Zeitumstellung ist, liegst du 1 Stunde neben Mitternacht des gesuchten Datums.
Ersetz einfach diese Zeile:
$time_lower += 86400; // next day
Durch diese:
$time_lower = strtotime("+1 day", $time_lower); // next day
Und schon sollte es laufen, da du dann genau einen Tag addierst. Die Datumsfunktion weiss dann selber, wieviele Stunden sie addieren muss.
Gruss,
Bjoern
Hi Bjoern,
das läuft super.
1000 Dank,
Nats