Nats: Problem mit Datum

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

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

    1. Hi Bjoern,

      das läuft super.

      1000 Dank,
      Nats