Hi,
Alternative unter PHP: Timestamps als Basis nehmen, aber Rechnungen mit strtotime() durchführen. Hat den Vorteil, dass zum einen die Zeitzonenwechsel berücksichtigt werden und zum anderen man sprechende Operatoren angeben kann, statt Magic Numbers oder Formeln, die man erst zurück- oder ausrechnen muss, um den Code zu verstehen.
Das ist ja im Wesentlichen auch, was Pit macht. Es hilft nur beides nicht, wenn man logische Fehler im Programm hat.
Ich dachte auch eigentlich, dass ich es schon so mache…
Verbesserungsvorschlag:
$myStart = 1519095600;
$myEnd = 1521413999;
$myJahr = date('Y',$myStart);
$myKW = date('W',$myStart);
$arr_alleWochen[] = $myJahr."W".$myKW; // 1.Eintrag
$myZeiger = $myJahr."W".$myKW; // ergibt immer den Montag dieser Woche
while ($myZeiger < date('Y',$myEnd)."W".date('W',$myEnd)) {
$myZeiger = date('Y', strtotime($myZeiger." +1 week +3day"))."W".date('W', strtotime($myZeiger." +1 week"));
$arr_alleWochen[] = $myZeiger; // alle weiteren KWs
}
echo("<pre>");
print_r($arr_alleWochen);
ergibt:
Array
(
[0] => 2018W08
[1] => 2018W09
[2] => 2018W10
[3] => 2018W11
)
Pit