Affiche un calendrier en PHP
Qui n’a pas rêvé d’avoir un joli calendrier sur site ?
<?php
function calendrier()
{
$magik1=date("n");$magik2=date("Y");$magik3=date("w", mktime(0,0,0,$magik1,1,$magik2));
$magik4=date("t");$magik6=date("d");
$magik1e=array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Aout", "Septembre","Octobre","Novembre","Décembre");
$donnees = '';
if ($magik3==0) {$magik3=7;}
$donnees .= "<table class=\"table_calendrier\" border=\"0\">\n";
$donnees .= " <tr>\n";
$donnees .= " <td colspan=\"7\" class=\"th_calendrier\">\n";
$donnees .= date("d").' '.$magik1e[$magik1-1].'('.date("m").') '.date("Y").' - '.date("H").':'.date("i").':'.date("s")."\n";
$donnees .= " </td>\n";
$donnees .= " <tr>\n";
$donnees .= " <tr class=\"tr_header_calendrier\">\n";
$donnees .= " <td class=\"td_calendrier\">Lun</td>\n";
$donnees .= " <td class=\"td_calendrier\">Mar</td>\n";
$donnees .= " <td class=\"td_calendrier\">Mer</td>\n";
$donnees .= " <td class=\"td_calendrier\">Jeu</td>\n";
$donnees .= " <td class=\"td_calendrier\">Ven</td>\n";
$donnees .= " <td class=\"td_calendrier\">Sam</td>\n";
$donnees .= " <td class=\"td_calendrier\">Dim</td>\n";
$donnees .= " </tr>\n";
$donnees .= " <tr>\n";
$i=1;
while ($i<$magik3)
{
$i++;
$donnees .= "<td class=\"td_calendrier\"> </td>\n";
}
$i=1;
while ($i<=$magik4)
{
$magik5=($i+$magik3-1)%7;
$donnees .= "<td class=\"td_calendrier\">\n";
if ($i==$magik6)
{
$donnees .= "<span class=\"jour_courrant_calendrier\" title=\"Jour courrant\">".$i."</span>\n";
}
else if ($magik5==6)
{
$donnees .= "<span class=\"weekend_calendrier\" title=\"Week-end\">".$i."</span>\n";
}
else if ($magik5==0)
{
$donnees .= "<span class=\"weekend_calendrier\" title=\"Week-end\">".$i."</span>\n";
}
else
{
$donnees .= "<span class=\"jour_calendrier\">".$i."</span>\n";
}
$donnees .= "</td>\n";
if ($magik5==0)
{
$donnees .= " </tr>\n";
$donnees .= " <tr>\n";
}
$i++;
}
$donnees .= " </tr>\n";
$donnees .= "</table>\n";
return $donnees;
}
?>
Pour utiliser la fonction:
<?php echo calendrier(); // On utilise la fonction qui affiche le calendrier ?>
Ce qui donne:
Malheureusement c’est pas très beau, il faut donc une petite touche de CSS:
.table_calendrier
{
margin: 10px auto auto auto;
border: 1px solid black;
border-radius: 3px;
border-collapse: separate;
padding: 0.3em;
background-color:#F1F1F1;
font-size:8pt;
font-family:verdana,arial,tahoma;
text-align: center;
}
.th_calendrier
{
background-color:#1A35E8;
color:FFFFFF;
}
.tr_header_calendrier
{
background-color:#344DED;
color:FFFFFF;
}
.td_calendrier
{
padding: 0.3em;
border: 0px solid black;
border-radius: 4px;
}
.jour_courrant_calendrier
{
border: solid #B6C1D0 1px;
border-radius: 4px;
color:#ffffff;
padding-top:2px;
padding-left:6px;
padding-right:6px;
padding-bottom:2px;
background-color:#99CCFF;
font-size:8pt;
}
.weekend_calendrier
{
border: solid #B6C1D0 1px;
border-radius: 4px;
background-color:#F1F1F1;
color:red;
padding-top:2px;
padding-left:6px;
padding-right:6px;
padding-bottom:2px;
font-size:9pt;
font-family:verdana,arial,tahoma;
}
.jour_calendrier
{
border: solid #B6C1D0 1px;
border-radius: 4px;
background-color:#F1F1F1;
color:blue;
padding-top:2px;
padding-left:6px;
padding-right:6px;
padding-bottom:2px;
font-size:9pt;
font-family:verdana,arial,tahoma;
}Voila ce que ça donne:
Si vous voulez tester par vous même tout est disponible en téléchargement:


