Решение:
<?php
function declOfNum($number, $titles) {
$cases = array (2, 0, 1, 1, 1, 2);
return $titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ];
}
echo declOfNum($number, array('месяц', 'месяца', 'месяцев'));
// вместо $number выводи the_time(); или типо того
?>
Для проверки:
<?php
echo '1 ' . declOfNum(1, array('месяц', 'месяца', 'месяцев')) . '<br/>';
echo '2 ' . declOfNum(2, array('месяц', 'месяца', 'месяцев')) . '<br/>';
echo '5 ' . declOfNum(5, array('месяц', 'месяца', 'месяцев')) . '<br/>';
?>