Pit: Rechnen mit Datum / Brett vorm Kopf

Beitrag lesen

Hi Andreas,

> $myJahr = date('Y',$myStart);
> $myKW = date('W',$myEnd);

Das Jahr vom Start, die Woche vom Ende? Das geht spätestens dann schief, wenn Start und Ende in verschiedenen Jahren liegen …

Alles gut, das hatte dedlfix schon bemerkt, das war ein Flüchtigkeitsfehler.

> $arr_alleWochen[] = $myKW."_".$myJahr;     // 1.Eintrag
> $myZeiger = $myStart;

$myZeiger ist jetzt ein Unix-Timestamp.

Genau... damit die While-Bedingung aufgeht, denn $myEnd ist auch einer.

> while ($myZeiger <= $myEnd) {
> $myZeiger = $myJahr."W".$myKW;      // Montag dieser Woche

jetzt ist $myZeiger ein String 2018W11. Warum Du das mit "Montag dieser Woche" kommentierst, erschließt sich mir nicht.

Ich denke, das habe ich für mich gemacht, weil das mir (als ich das irgendwo las, neu war...)

> $next_week = date('W', strtotime($myZeiger." +1 week"))."_".date('Y', strtotime($myZeiger." +1 week +3day"));

Hier wird der Jahreswechsel berücksichtigt (+3day), bei Jahreswechsel zwischen $myStart und $myEnd ist aber schon der erste Eintrag falsch.

Das siehst Du? Das ist echt nicht trivial, Hut ab, spricht für Dich. DaumenHoch!

> $arr_alleWochen[] = $next_week;            // alle weiteren KWs
> $myZeiger = strtotime($myZeiger." +1 week");

Oh, $myZeiger wird jetzt wieder ein Unix-Timestamp. Sehr verwirrend, der ständige Bedeutungswechsel von $myZeiger. Geht Dir das nicht auf den Zeiger? 😉

Aber hallo doch! Ja, tut es... Aber das wolte ich ja so, wegen der while-Bedigung...

Ach ja, Einrückungen würden den Code besser lesbar machen.

Wenn Du einen guten Editor kennst, der das gut macht... immer her mit Deinen Tips 😉

Pit