Вы используете mktime()
неправильно.
int mktime ([ int $hour = date("H")
[, int $minute = date("i")
[, int $second = date("s")
[, int $month = date("n")
[, int $day = date("j") <------------ here
[, int $year = date("Y") <------------ and here
[, int $is_dst = -1 ]]]]]]] )
Если вы не укажете $day
и $year
, по умолчанию они будут сегодняшняя дата .
Сегодня 30-е число, которого нет в феврале.
Это будет работать:
echo date('F', mktime(0,0,0,$i,1,2011)) . " | ";