nel ringraziare darkmik per il suggerimento devo però annunciare che...alla fine mi sono arreso
e ho adottato questo:
Codice PHP:
<?php
function print_calendar($month="",$year="")
{
// impostiamo la data attuale
$now = getdate(time());
// controlliamo mese e anno passati
if ( empty($month) OR empty($year) OR !is_numeric($month) OR !is_numeric($year) OR !@checkdate($month,1,$year) )
{
$month = $now['mon'];
$year = $now['year'];
}
// unix timestamp del primo giorno
// del mese e dell'anno ricevuti
$time = mktime(0,0,0, $month, 1, $year);
// genera l'array con le informazioni
$date = getdate($time);
// giorni totali per il mese e anno
$day_total = cal_days_in_month(CAL_GREGORIAN, $date['mon'], $date['year']);
//stampa mese e anno in oggetto
//in italiano come intestazione
setlocale(LC_TIME,"it_IT");
$mese_anno = strftime('%B',$date[0]). " " .$year;
echo "<table><tr><td colspan=\"7\">[b]$mese_anno[/b]</td></tr>\n";
// stampa le abbreviazioni dei giorni della settimana
echo "<tr><td>Do</td><td>Lu</td><td>Ma</td><td>Me</td> <td>Gi</td><td>Ve</td><td>Sa</td></tr>\n";
for ($i = 0; $i < 6; $i++)
{
echo '<tr>';
for ($j = 1; $j <= 7; $j++)
{
$day_number = $j + $i*7 - $date['wday'];
//stampa la cella con il giorno
echo '<td';
if ($day_number > 0 AND $day_number <= $day_total)
{
// borda di rosso se è oggi
if ($day_number == $now['mday'] AND $month == $now['mon'] AND $year == $now['year'])
{
echo " style=\"border: 1px solid #cc0000;\" ";
}
echo ">$day_number";
}
else
{
//stampa una cella vuota se non esiste il giorno
echo '> ';
}
echo '</td>';
}
echo "</tr>\n";
if ($day_number >= $day_total AND $i != 6)
break;
}
echo "</table>\n";
}
echo print_calendar()
?>
...trovato tra gli articoli di html.it!
siccome però stampa la domenica come primo giorno della settimana e a me piacerebbe fosse il lunedì (all'italiana) come posso settare l'array $date['wday'] (ammesso che sia questo un'array o un array di un array...) in modo tale che 0 sia lunedì e 6 domenica invece che 0 domenica e 6 sabato?