Może to już nie aktualne ale na wszelki wypadek jeszcze dodam coś od siebie.
Nie przestudiowałem całego skryptu, więc nie wiem czy nieprawidłowa ilość dni lutego może spowodować błędne działanie, ale jeśli tak to ten fragment:
<?php
if($rok % 4 == 0){ // czy jest to rok przestępny 
$iloscDniLutego = 29;
}else{
$iloscDniLutego = 28;
}
?>
wymaga poprawek.
Z dawnych czasów jeszcze w C++ miałem funkcję zwracającą ilość dni miesiąca, którą przerobiłem na potrzeby php. Nie jestem w stanie aktualnie podać, skąd źródło informacji o tym, kiedy ile dni ma luty, ale wtedy byłem tego pewien na 100% więc informacje chyba były pewne.
funkcja wygląda tak:
<?php
Function daysinmonth($year, $month)
{
if ($month==1) $dni=31;
if ($month==2)
{
if (($year % 4) == 0)
{
if (($year % 100)==0)
{
if (($year % 400)==0) $dni=29; else $dni=28;
} else $dni=29;
}
else $dni=28;
}
if ($month==3) $dni=31;
if ($month==4) $dni=30;
if ($month==5) $dni=31;
if ($month==6) $dni=30;
if ($month==7) $dni=31;
if ($month==8) $dni=31;
if ($month==9) $dni=30;
if ($month==10) $dni=31;
if ($month==11) $dni=30;
if ($month==12) $dni=31;
return $dni;
}
?>
Ten fragment z lutym trzeba oczywiście przerobić, aby dostosować do powyższego skryptu, mi chodzi jedynie o algorytm - ilość dni w lutym zależy od jeszcze kilku czynników, nie tylko od tego czy rok jest podzielny przez 4