1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
function calendrier($mois,$annee) //renvoi un calendrier
{
//variables
$date = date('Y-m-01');
$moi = date('n');
$year = date('Y');
$ts = mktime(1,1,1,$mois,1,$annee); //Recuperation du timestamp du numero du jour de base cad le numero du jour du premier jour du mois ouf !
$tab = getdate($ts); //Recuperation du numero du jour de base, le numero du jour du premier jour du mois
$j = 1 ; //premier jour
$nbjour = date('t',$ts) ;//nombre de jour dans le mois
$nom_mois = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobtre','Novembre','Décembre');//Nom des moins in French
//cette sequence corrige le numero du dimanche. PHP donne 0, dans notre cas 7 est préférable, donc..
if($tab['wday'] == 0)
{
$dp = 7 ;
}
else
{
$dp = $tab['wday'] ;
}
$moiprochain = date('Y-m-d',strtotime($date . '+1 month'));
$moiapresedent = date('Y-m-d',strtotime($date . '-1 month'));
//Affichage de l'entête du calendrier
echo '<table width="100%" border="1"><tr><td align="center" colspan="7" class="calendrier-mois"><a href="#" onclick="updatelistdate(\''.$moiapresedent.'\')"><b><</b></a> <b>'.$nom_mois[$mois-1].' '.$year.'</b> <a href="#" onclick="updatelistdate(\''.$moiprochain.'\')"><b>></b></a></td></tr>';
echo "<tr><td>Lun</td><td>Mar</td><td>Mer</td><td>Jeu</td><td>Ven</td><td>Sam</td><td>Dim</td></tr>";
//Affichage du calendrier
for($i=1;$i<=42;$i++)
{
if($i % 7 == 1 ) //si il reste un, on commence forcement une nouvelle ligne
{
echo "<tr>";
}
for($f = $date ; $f < $moiprochain ;$f = date('Y-m-d',strtotime($f . '+1 day'))) {
if(($dp <= $i)&&($j <= $nbjour))//si nous sommes apres le numero du premier jour et que nous n avons pas
{//passé le 30 ou 31
echo '<td><a href="#" onclick="updatedate(\''.$f.'\')">'.$j.'</a></td>' ; //on affiche
$j++;
}
else
{
echo "<td></td>"; //sinon case vide
}
}
if($i % 7 == 0 ) //si il ne reste rien, cad des multiples de 7, on se retrouve forcement en fin de ligne
{
echo "</tr>";
}
}
echo "</table>"; //affichage de la fin du tableau
//calcul des positions des mois
//barre de navigation
} //Fin fonc |
Partager