hi,
ich habe mir dieses testscript zur datumsberechnung geschrieben
$date[0] = 25; //tag
$date[1] = 10; //monat
$date[2] = 2003; //jahr
$week = 1;
function datePlusWeek($date, $week) {
$startDate_mk = mktime (0, 0, 0, $date[1], $date[0], $date[2]);
$startDate = date(‚Y-m-d‘, $startDate_mk);
//1 woche --> 168 stunden, 1 stunde --> 3600 sek.
$finishDate_mk = $startDate_mk + ((168 * 3600) * $week);
$finishDate = date (‚Y-m-d‘, $finishDate_mk);
return $finishDate;
}
$finishDate = datePlusWeek($date, 1);
echo "Laufzeit $week Woche
";
echo ‚vom: ‚.$date[2].‘-‘.$date[1].’-’.$date[0];
echo ’
';
echo „bis: $finishDate“;
beim durchchecken bin ich auf eine eigentümlichkeit gestoßen
folgende ausgaben habe ich erhalten
…
Laufzeit 1 Woche
vom: 2003-10-25
bis: 2003-10-31
…
Laufzeit 1 Woche
vom: 2003-8-25
bis: 2003-09-01
…
Laufzeit 1 Woche
vom: 2003-12-25
bis: 2004-01-01
…
Laufzeit 1 Woche
vom: 2003-11-25
bis: 2003-12-02
…
Laufzeit 1 Woche
vom: 2004-3-25
bis: 2004-04-01
…
Laufzeit 1 Woche
vom: 2004-10-25
bis: 2004-10-31
…
bei allen monaten beginnt die berechnung der woche (7 tage) mit dem ersten folgetag
2003-8-25 --> 26.(1), 27.(2), 28(3), 29.(4), 30.(5), 31.(6), 1.(7)
außer oktober, da wird der der starttag schon mitgezählt
2003-10-25 --> 25.(1), 26.(2), 27(3), 28.(4), 29.(5), 30.(6), 31.(7)
ich finde einfach nicht heraus warum, alle monate (auch märz, ich dachte erst es hat
was mit der sommerzeit zu tun) zählen nach zählweise 1, außer oktober der zählt auf
zählweise 2. habe es auch mit verschiedenen jahrgängen getestet wegen schaltjahr und so,
aber auch nichts 2003 ist kein schaltjahr, 2004 ist ein schaltjahr, der oktober bringt
ein anderes ergebnis.
wieso oktober? was ist da besonderes?
weiß jemand warum bzw. welche ursache dahintersteckt?
cu
harald