j'ai créé comme un calendrier qui liste les semaines des mois seulement je me trouve confronté a un problème, lorsque je passe d'un mois a un autre, l'incrementation des jours n'est pas bon, ce qui me decalle tous les jours de la semaine
voici le resultat http://garbar-sylvain.info/stockage
et voici le code
<?php
/// on récupère le mois du jour
$moisjour = date("n");
$annee = date("Y");
$semaine = date("W");
/// on donne les variables pour l'ecriture en toute lettre
function mois($moisjour){
if ($moisjour == 1){
$moisjour_lettres = "Janv";}
elseif ($moisjour == 2){
$moisjour_lettres = "Févr";}
elseif ($moisjour == 3){
$moisjour_lettres = "Mars";}
elseif ($moisjour == 4){
$moisjour_lettres = "Avr";}
elseif ($moisjour == 5){
$moisjour_lettres = "Mai";}
elseif ($moisjour == 6){
$moisjour_lettres = "Juin";}
elseif ($moisjour == 7){
$moisjour_lettres = "Juil";}
elseif ($moisjour == 8){
$moisjour_lettres = "Août";}
elseif ($moisjour == 9){
$moisjour_lettres = "Sept";}
elseif ($moisjour == 10){
$moisjour_lettres = "Oct";}
elseif ($moisjour == 11){
$moisjour_lettres = "Nov";}
elseif ($moisjour == 12){
$moisjour_lettres = "Déc";}
return($moisjour_lettres);
}
$i = 0;
while($i < 12){
$i2 = 0;
if($moisjour == 13){
$annee = $annee+1;
$moisjour = 1;}
if($i%2 == 0){
$fond = "images/calendar_fd.jpg";
$color = "#B3D8E8";
}
else{
$fond = "images/calendar_fd2.jpg";
$color = "#DEECF5";
}
$moisjour_lettres = mois($moisjour);
/// Début de la boucle pour le tableau
echo "<table cellpadding=\"0\" cellspacing=\"0\" bordercolordark=\"white\" bordercolorlight=\"black\">
<tr>";
/// Nom du mois
echo" <!-- DEBUT DU MOIS -->
<td width=\"30\" height=\"52\" style=\"background-image:url('images/calendar.gif'); background-repeat:no-repeat; background-attachment:scroll;\" valign=\"top\">
<p style=\"margin-top:17px; margin-bottom:0px;\" align=\"center\"><font face=\"Arial\"><span style=\"font-size:7pt;\"><b>".$moisjour_lettres."</b></span></font></p>
<p style=\"margin-top:0; margin-bottom:0;\" align=\"center\"><font face=\"Arial\"><span style=\"font-size:7pt;\">".$annee."</span></font></p>
</td>
<!-- FIN -->";
/// semaines
echo"<td width=\"500\" height=\"52\" bgcolor=\"".$color."\" style=\"background-image:url('".$fond."'); background-repeat:no-repeat; border-bottom-width:2px; border-left-width:2px; border-bottom-color:white; border-left-color:white; border-bottom-style:solid; border-left-style:solid;\">
<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"100%\">
<tr>
";
while($i2 < 4){
if($i2 == 0){
/// savoir quel est le premier jour de la semaine
$prem_j_sem = date("w", mktime(0, 0, 0, $moisjour, 1, $annee));
if($prem_j_sem != 6){
/// si le premier du mois ne tombe pas un samedi
$dern_j_mois_prec = date("d",mktime(0, 0, 0, $moisjour-1, 0, $annee));
$prem_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour-1, $dern_j_mois_prec-$prem_j_sem, $annee));
$date = explode("-", $prem_j_sem);
$jour = $date[0];
$mois = $date[1];
$annee = $date[2];
$dern_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour-1, 7+$prem_j_sem, $annee));
$date_d = explode("-", $dern_j_sem);
$jour_d = $date_d[0];
$mois_d = $date_d[1];
$annee_d = $date_d[2];
}
/// si le prem jour de la semaine est bien un samedi
else{
$prem_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour, 1, $annee));
$date = explode("-", $prem_j_sem);
$jour = $date[0];
$mois = $date[1];
$annee = $date[2];
$dern_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour-1, 7+$prem_j_sem, $annee));
$date_d = explode("-", $dern_j_sem);
$jour_d = $date_d[0];
$mois_d = $date_d[1];
$annee_d = $date_d[2];
}
$i2=$i2+1;
}
else {
$prem_j_sem = date("d-n-Y", mktime(0, 0, 0, $mois_d, $jour_d, $annee_d));
$date = explode("-", $prem_j_sem);
$jour = $date[0];
$mois = $date[1];
$annee = $date[2];
$dern_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour, $jour+7, $annee));
$date_d = explode("-", $dern_j_sem);
$jour_d = $date_d[0];
$mois_d = $date_d[1];
$annee_d = $date_d[2];
$i2=$i2+1;
}
echo"
<!-- SEMAINE ".$i2." -->
<td width=\"118\"";
if($i2 != 0){
echo "style=\"border-left-width:1px; border-left-color:white; border-left-style:solid;\"";
}
echo ">
<p align=\"center\"><font face=\"Arial\"><span style=\"font-size:8pt;\">Du ".$jour." ".mois($mois)." au ".$jour_d." ".mois($mois_d)."</span></font></p>
</td>";
}
echo"
</tr>
</table>";
//// fin du code
echo "</td>
</tr>
</table>";
$moisjour = $moisjour + 1;
$i = $i +1;
$semaine = $semaine+1;
}
Merci d'avance pour votre aide