you need to provide a calendar:
int cal_days_in_month ( int $calendar , int $month , int $year )
as:
$month_length = cal_days_in_month(CAL_GREGORIAN, $month, $year);
you can confuse it with cal_info ([ int $calendar = -1 ] ) which takes a calendar view:
0 or CAL_GREGORIAN - Gregorian Calendar 1 or CAL_JULIAN - Julian Calendar 2 or CAL_JEWISH - Jewish Calendar 3 or CAL_FRENCH - French Revolutionary Calendar
source share