Ich glaube nicht, dass der Fehler auf das "Einknicken" deines Systems zurückzuführen ist, eher auf einen Fehler in deinem Code. Deine Monatsberechnung ist schlicht falsch, irgendwann ist $nextMonth = 24 und damit >12 und damit wird nextMonth=0. Dann rufst du den 0-ten Monat eines Jahres auf und es macht Bumm.
So würde ich den unteren Teil des Codes eher als korrekt ansehen (ungetestet!). So sollte auch das Jahr stimmen. Bei deiner Variante wird das Jahr im selben Moment falsch, in dem der Monat auf 0 gesetzt wird. Fällt aber nicht mehr auf, weil es ohnehin knallt.
PHP-Code:
// extract year and month
$currentYear = intval(substr($actualDate, 0, 4));
$currentMonth = intval(substr($actualDate, -2));
// iterate through months
$nextYear = $currentYear;
$nextMonth = $currentMonth;
for( $i = 0; $i <= 24; ++$i )
{
$nextMonth++;
if( $nextMonth > 12 )
{
$nextYear++;
$nextMonth = 1; // oder auch $nextMonth = ($nextMonth-1) % 12 + 1;
}
// month output
\Input::setGet('month', $nextYear.str_pad($nextMonth, 2, '0', STR_PAD_LEFT));
echo \Controller::getFrontendModule($intModuleId);
}
Edit: So wie deine Schleife angelegt ist, werden außerdem 25 Monate ausgegeben und nicht 24.
Lesezeichen