<?php
$mesi = array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" );
?>
<select name="mese">
<?php for($i=0;$i<12;$i++){?>
<option value="<?php echo $i+1?>"><?php echo $mesi[$i]?></option>
<?php } ?>
</select>
<select name="anno">
<?php for($i=1910;$i<2501;$i++){?>
<option><?php echo $i?></option>
<?php } ?>
</select>
<?php
//calendario perpetuo, non serve altro che chiamare la funzione con calendario($mese,$anno)
function calendario($mese,$anno)
{
// Se e’ presente la variabile “x” prendo mese ed anno altrimenti prendo i dati di oggi (data del server!)
isset($_GET['x']) ? $x = $_GET['x'] : $x = "";
if ($x == "")
{
$mese_ = $mese;
$anno_ = $anno;
}
else
{
$mese_ = (int)strftime( "%m" ,(int)$_GET['x']);
$anno_ = (int)strftime( "%Y" ,(int)$_GET['x']);
}
// prendo i dati precedenti e successivi…
$prev = mktime(0, 0, 0, $mese_ -1, 1, $anno_);
$next = mktime(0, 0, 0, $mese_ +1, 1, $anno_);
// Rendo i tempi del server…umani.
$human_month = array("error", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" );
$settimana = array("Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom");
$colonne = 7;
$giorni = date("t",mktime(0, 0, 0, $mese_, 1, $anno_)); //giorni del mese in questione
$primo_lunedi= date("w",mktime(0, 0, 0, $mese_, 1, $anno_)); //Array_parte da 0
if($primo_lunedi==0)
$primo_lunedi = 7; //non siamo americani
// Creiamo la tabella ove visualizzare intestazione (<< Mese Anno >>)
print("<table width=\"210\" colspacing=\"0\" border=\"0\">"); //table
print("\n\t<tr height=\"20\">\n\t\t<td colspan=\"".$colonne."\" align=\"center\"><a href=\"?x=".$prev."\"><<</a> <span>".$human_month[(int)$mese_]." ".$anno_."</span> <a href=\"?x=".$next."\">>></a></td>\n\t</tr>"); //mese/anno
// Mostro i giorni della settimana…
foreach($settimana as $val)
print("\n\t\t<td height=\"20\">".$val."\t</td>");
print("</tr>");
// Stampiamo i giorni del mese…
for($i = 1; $i<$giorni+$primo_lunedi; $i++)
{
if($i%$colonne+1==0)
print("\n\t<tr>");
if($i<$primo_lunedi)
print("\n\t\t<td> </td>");
else
{
$giorno_= $i-($primo_lunedi-1);
$a = strtotime(date($anno_."-".$mese_."-".$giorno_));
$b = strtotime(date("Y-m-d"));
// Evidenziamo oggi…
if($a != $b)
print("\n\t\t<td><a href=\"?x=".$a."\">".$giorno_."</a></td>");
else
print("\n\t\t<td><a href=\"?x=".$a."\"><strong>".$giorno_."</strong></a></td>");
}
if($i%$colonne==0)
print("\n\t</tr>");
}
print("\n\t<tr height=\"30\"> \n\t</tr>");
print("\n</table>");
}
// Richiamiamo la funzione che genera il calendario…
calendario(date("m"),date("Y"));
?>