Calendrier mensuel

Soyez le premier à donner votre avis sur cette source.

Vue 26 630 fois - Téléchargée 2 284 fois

Description

Ce petit bout de code est un calendrier assez simple mais super pratique.
Il ne gere pas les evenements mais comme vous le verez c'est tres tres simple a mettre en place.

Cela se compose en 2 parties.
La premiere pour le calendrier meme et les calculs et la 2eme pour l'affichage de ce calendrier.

ATTENTION: le fichier calendrier.php devra etre mis dans le meme repertoire que votre page PHP.

pour afficher un mois et une annee specifiche ou meme changer le jour actuel du mois, vous devez ajouter dans lurl de votre page (pas celle du calendrier) ceci:
http://www.domaine.com/votre_page.php?j=06&m=10

Source / Exemple :


/*
    PREMIERE PARTIE A METTRE DANS LE FICHIER [b]CALENDRIER.PHP/b

  • /
<? $mois = array(); // nombre de jour dans chaque mois $nbjour = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // nom des mois en francais $mois[1] = "Janvier"; $mois[2] = "Février"; $mois[3] = "Mars"; $mois[4] = "Avril"; $mois[5] = "Mai"; $mois[6] = "Juin"; $mois[7] = "Juillet"; $mois[8] = "Août"; $mois[9] = "Septembre"; $mois[10] = "Octobre"; $mois[11] = "Novembre"; $mois[12] = "Décembre"; $jours = array(); // si un jour, mois, annee, n'est pas spécifié alors on recupere la date actuelle if ($j == "") { $j = date("d"); } if ($m == "") { $m = date("m"); } if ($a == "") { $a = date("Y"); } // on determine a quel jour de la semaine correspond le premier jour du mois affiché $premierjour = jddayofweek(cal_to_jd($CAL_FRENCH, $m, 1, $a), 0); // si on est dans une annee bisextile alors on ajoute un jour au mois de fevrier sinon un recupere le nombre de jour dans le mois if ($m == 2) { if ((($a % 4 == 0) && ($a % 100 != 0)) || ($a % 400 == 0)) { $dernierjour = 29; } else { $dernierjour = 28; } } else { $dernierjour = $nbjour[$m]; } if ($premierjour == 0) { $premierjour = 7; } // on commence la boucke pour stoker les informations relatives a chaques jour de la semaine $compteur = 0; for ($ligne=1;$ligne<7;$ligne++) { for ($colone=1;$colone<8;$colone++) { if ($ligne == 1) { // si le jour de la semaine est plus petit que le jour de la semaine correspondant au premier jour du mois // alors on affiche rien // sinon on stocke le jour dans le tableau if ($colone < $premierjour) { $jours[$ligne][$colone] = ""; } else { $compteur++; $jours[$ligne][$colone] = $compteur; } } else { $compteur++; // si le jour atteint est plus petit ke le nombre de jour dans le mois // alors on le stocke // sinon on affiche rien if ($compteur <= $dernierjour) { $jours[$ligne][$colone] = $compteur; } else { $jours[$ligne][$colone] = ""; } } } } // on calcule le mois et lannee, precedent et suivant $mois_precedent = $m - 1; $mois_suivant = $m + 1; $annee_precedente = $a; $annee_suivante = $a; if ($mois_precedent < 1) { $mois_precedent = 12; $annee_precedente--; } if ($mois_suivant > 12) { $mois_suivant = 1; $annee_suivante++; } ?> //------------------------------------------------------------------------------------------- /* DEUXIEME PARTIE A INTEGRER [b]DANS VOTRE PAGE PHP/b
  • /
<? include("calendrier.php"); echo "<table width='150' cellspacing='0' cellpadding='0' border='0'>"; echo "<tr><td align='center'><b>Lu</b></td><td align='center'><b>Ma</b></td><td align='center'><b>Me</b></td><td align='center'><b>Je</b></td><td align='center'><b>Ve</b></td><td align='center'><b>Sa</b></td><td align='center'><b>Di</b></td></tr>"; for ($ligne=1;$ligne<7;$ligne++) { echo "<tr>"; for ($colone=1;$colone<8;$colone++) { echo "<td align='center'>"; if ($jours[$ligne][$colone] == $j) { // affichage du jour memem echo "<b>".$jours[$ligne][$colone]."</b>"; } elseif ($jours[$ligne][$colone] == 20) { // affichage si il y a un evenement echo "<a href='#'>".$jours[$ligne][$colone]."</a>"; } else { // sinon affichage normal echo $jours[$ligne][$colone]; } echo "</td>"; } echo "</tr>"; } echo "<tr><td align='center'><a href='?m=".$mois_precedent."&a=".$annee_precedente."'><<</a></td><td colspan='5' align='center'>".$mois[$m]." ".$a."</td><td align='center'><a href='?m=".$mois_suivant."&a=".$annee_suivante."'>>></a></td></tr>"; echo "</table>"; ?>

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
lundi 4 avril 2011
Statut
Membre
Dernière intervention
30 avril 2011

bonsoir,J'ai intégré le script dans mon site par la fonction include et le serveur m'informe que l'index a et m sont undefined alors svp comment je peux récupérer la date mais pas à travers le navigateur???
Messages postés
1
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
31 mars 2008

$premierjour = jddayofweek(cal_to_jd(CAL_FRENCH, $m, 1, $a), 0);

cal_to_jd renvoyait toujours 0 donc j'ai fait d'une autre façon :

$premierjour = date("w", mktime(0, 0, 0, $m, 1, $a));

Je sais pas si niveau performance c'est mieux ou pas.
Messages postés
79
Date d'inscription
jeudi 11 août 2005
Statut
Membre
Dernière intervention
17 mars 2011

Je reprend le sujet très tard mais ca peut toujours servir a quelqu'un ligne 28 lors de l'apelle de la function "cal_to_jd()"

// on determine a quel jour de la semaine correspond le premier jour du mois affiché
$premierjour = jddayofweek(cal_to_jd($CAL_FRENCH, $m, 1, $a), 0);

Enlever "$" à "$CAL_FRENCH".
cf:"http://us3.php.net/manual/fr/function.cal-to-jd.php"
Messages postés
1
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
25 juillet 2006

bonjour
je suis débutant en php.Je veux ouvrirs ces scriptes et je ne sais pas comment?
je serais tres reconnaissant si quelquin peut m'aider.
merci
Messages postés
1
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
17 mai 2006

la variable $CAL_FRENCH, d'où vient-elle et à quoi set-elle ?
(Undefined variable: CAL_FRENCH in...)
Afficher les 21 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.