[Calendrier] Dynamique avec passage de date en paramètre
Bonjour, voilà mon souci.
Je souci afficher un calendrier sous la forme d'un tableau (en tout cas c'est le seul moyen assez facile, enfin si on veux) qui n'affiche que les dates du mois à partir de la date passé en paramètre de ma fonction php.
De plus, la première ligne de mon tableau correspond au jour de la semaine dans l'ordre L,M,M,J,V,S,D.
J'ai réussi à trouvé un algorithme qui fonctionne mais il fonctionne seulement pour le mois de Mai 2014 :?
Connaissez-vous un moyen de réaliser cela.
Je vous montre ma fonction au cas il y aurait peu de choses à modifier :
Code:
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
| function calendrier ($date)
{
list($j, $m, $y)=explode('/', $date);
$j = '01';$m = '05';$y = '2014';
$tab = array ();
$dlj = date('w', mktime(1, 1, 1, $m, 01,$y));echo $dlj;
$nbj = cal_days_in_month(CAL_GREGORIAN, $m, $y);
if($dlj == 0)
$dlj = 7;
$pos = $dlj - 1;
$nbj_rest = $nbj - (7-$pos);
$nbl = ceil($nbj_rest / 7) + 1;
for($i = 0; $i<$nbl; $i++)
{
if($j < 7* ($i+1))
{
for($c = 0; $c<7; $c++)
{
if((((7* ($i+1)) - 9 + $c) <= $nbj) and ($c >= $pos))
{
$tab [$i][$c] = (7* ($i+1)) - 9 + $c;
if($c == 6)
$pos = 0;
$jour = (7* ($i+1)) - 9 + $c;
if(strlen($jour) == 1)
$jour = "0".$jour;
$req = "SELECT jour FROM jours_feries WHERE jour = '$jour/$m/$y'";echo $req;
$res = mysql_query($req);
$donnees = mysql_fetch_assoc($res);
if($donnees != false)
$tab[$i][$c] = '';
}
else $tab[$i][$c] = '';
}
}
else
{
for($c = 0; $c<7; $c++)
{
$tab[$i][$c] = '';
}
}
}var_dump($tab);
return $tab;
} |