Лично, чтобы не изобретать велосипед, я бы использовал плагин для локализованного календаря, такой как jQuery UI Datepicker .Затем отобразить календарь на итальянском языке так же просто, как:
$("#calendarDiv").datepicker($.datepicker.regional["it"]);
$("#calendarDiv").datepicker("setDate", "19/05/2011");
Этот календарь (локализованный на итальянский) начинает дни недели в понедельник (Lunedi) и изменяет формат даты по умолчанию на ожидаемый день / месяц /год, общий для более здравомыслящих стран.
Теперь, признав, что использование внешних плагинов не всегда является жизнеспособным вариантом, вы можете расширить PHP, чтобы сделать календарь таким образом (этот блок будет появляться после строки заголовка, которую выв настоящее время используется для названий недель):
$timestamp = mktime(0,0,0,$cMonth,0,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate($timestamp);
$startday = $thismonth['wday'];
for ($i = 0; $i <= ($maxday + $startday); $i++)
{
if(($i % 7) == 0 )
echo "<tr>";
if($i < $startday)
echo "<td> </td>";
else
echo "<td align='center' valign='middle' height='20px'>" .
($i - $startday + 1) . "</td>";
if(($i == ($maxday + $startday)) && (($i % 7) > 0))
{
$spareDays = (7 - ($i % 7)) - 1;
for($i = 0; $i < $spareDays; $i++)
echo "<td> </td>";
echo "</tr>";
break;
}
else if(($i % 7) == 6 )
echo "</tr>";
}
Я сделал несколько корректировок в вашем примере, чтобы исправить начальный и конечный день, чтобы представление календаря выглядело так же, как в пользовательском интерфейсе jQuery.Datepicker, хотя в зависимости от того, как ваш экземпляр PHP локализован на вашем сервере, их, возможно, потребуется откорректировать обратно (см. Пример ответа dmikester1).Моя реализация довольно проста, но я хотел, чтобы она была семантически похожа на ваш оригинальный пример.