Accueil > > > UN CALENDRIER SOUS LA FORME D'UN TABLEAU
UN CALENDRIER SOUS LA FORME D'UN TABLEAU
Information sur la source
Description
Cette source permet de créer un calendrier sous la forme d'un tableau, comme celui du Site du Zer0, par exemple. Il utilisa le timestamp. Vous pouvez avoir un apercu du rendu à l'adresse : http://hirrade.lescigales.org/codes/calendrier.ph p et le rendu inclu dans une page à l'adresse : http://hirrade.lescigales.org/
Source
- <html>
- <head>
- <style>
- caption
- {
- margin: auto;
- font-family: Arial, Times, "Times New Roman", serif;
- font-weight: bold;
- font-size: 1.2em;
- color: #EFF3FF;
- margin-bottom: 20px;
-
- }
-
- table
- {
- margin: auto;
- border: 4px outset #EFF3FF;
- border-collapse: collapse;
- width: 100%;
- }
-
- th
- {
- background-color: #EFF3FF;
- color: black;
- font-size: 1em;
- font-family: Arial, "Arial Black", Times, "Times New Roman", serif;
- border: 1px
- }
-
- td
- {
- border: 1px solid black;
- font-family: "Trebuchet MS", "Times", serif;
- font-size: 1em;
- text-align: center;
- padding: 5px;
- }
-
-
- .lienCalendrierJour
- {
- background-color: #CDF0F0;
- text-decoration: underline;
- }
- </style>
- </head>
- <body>
-
- <?php
-
- if(!isset($_GET['m']) && !isset($_GET['y']))
- {
- // Si on ne récupère rien dans l'url, on prend la date du 1er jour du mois actuel.
- $timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
- }
-
-
- else
- {
- // Sinon on récupère la date du 1er jour du mois donné.
- $timestamp = mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);
- }
-
- ?>
- <?php
-
- /* Si le mois et l'année de la variable $timestamp correspondent au mois et à l'année d'aujourd'hui, on retient le jour actuel.
- Sinon le jour actuel ne se situe pas dans le mois et on ne retient rien */
-
- if(date('m', $timestamp) == date('m') && date('Y', $timestamp) == date('Y'))
- {
- $coloreNum = date('d');
- }
-
- ?>
- <?php
-
- $m = array("01" => "Janvier", "02" => "Février", "03" => "Mars", "04" => "Avril");
- $m += array("05" => "Mai", "06" => "Juin", "07" => "Juillet", "08" => "Août");
- $m += array("09" => "Septembre", "10" => "Octobre", "11" => "Novembre", "12" => "Décembre");
-
- $j = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
- // Souvenez-vous que les dates en PHP commencent par dimanche !
-
- ?>
- <?php
-
- $numero_mois = date('m', $timestamp);
- $annee = date('Y', $timestamp);
-
- if($numero_mois == 12)
- {
- // Dans le cas du mois de décembre
- $annee_avant = $annee;
- $annee_apres = $annee + 1; // L'année d'après change
- $mois_avant = $numero_mois - 1;
- $mois_apres = 01; // Le mois d'après est janvier
- }
- elseif($numero_mois == 01)
- {
- // Dans le cas du mois de janvier
- $annee_avant = $annee - 1; // L'année d'avant change
- $annee_apres = $annee;
- $mois_avant = 12; // Le mois d'avant est décembre
- $mois_apres = $numero_mois + 1;
- }
- else
- {
- // Il ne s'agit ni de janvier ni de décembre
- $annee_avant = $annee;
- $annee_apres = $annee;
- $mois_avant = $numero_mois - 1;
- $mois_apres = $numero_mois + 1;
- }
-
-
-
- $numero_jour1er = date('w', $timestamp); // 0 => Dimanche, 1 => Lundi, 2 = > Mardi...
-
- // Changement du numéro du jour car l'array commence à l'indice 0.
- if ($numero_jour1er == 0)
- {
- /*
- Si c'est dimanche, on le place en 6e position
- (car on commencera notre boucle à 0)
- */
- $numero_jour1er = 6;
- }
- else
- {
- // Sinon on met lundi à 0 ou mardi à 1 ou mercredi à 2...
- $numero_jour1er--;
- }
-
- ?>
- <table>
- <caption>
- <?php
- // Lien pour aller au mois précédent
- echo '<a href="?m='.$mois_avant.'&y='.$annee_avant.'"><<</a>';
-
-
- // Affichage du mois et de l'année
- echo '<span style="color: #000000;"> '.$m[$numero_mois].' '.$annee.'</span> ';
-
-
- // Lien pour aller au mois suivant
- echo '<a href="?m='.$mois_apres.'&y='.$annee_apres.'">>></a>';
- ?>
- </caption>
-
- <tr>
- <th>Lu</th>
- <th>Ma</th>
- <th>Me</th>
- <th>Je</th>
- <th>Ve</th>
- <th>Sa</th>
- <th>Di</th>
- </tr>
-
- <?php
-
- echo '<tr>'; // Nouvelle ligne du tableau (celle de la 1ère semaine, donc)
-
- // Écriture de colonnes vides tant que le mois ne démarre pas.
- for($i = 0 ; $i < $numero_jour1er ; $i++)
- {
- echo '<td></td>';
- }
-
- for($i = 1 ; $i <= 7 - $numero_jour1er; $i++)
- {
- echo '<td><div class="';
-
- if(isset($coloreNum) && $coloreNum == $i)
- {
- echo 'lienCalendrierJour';
- }
- else
- {
- echo 'lienCalendrier';
- }
-
- echo '">'.$i.'</div></td>';
- }
-
- echo '</tr>';
-
- ?>
- <?php
- $nbLignes = ceil((date('t', $timestamp) - ($i-1)) / 7);
- for($ligne = 0 ; $ligne < $nbLignes ; $ligne++)
- {
- echo '<tr>'; // Nouvelle ligne du tableau (celle de la nouvelle semaine)
-
- for($colone = 0 ; $colone < 7 ; $colone++)
- {
- if($i <= date('t', $timestamp))
- {
- echo '<td><div class="';
-
- if(isset($coloreNum) && $coloreNum == $i)
- {
- echo 'lienCalendrierJour';
- }
- else
- {
- echo 'lienCalendrier';
- }
-
- echo '">'.$i.'</div></td>';
- }
- else
- {
- // On a fini d'écrire le mois on termine la tableau par des cellules vides
- echo '<td></td>';
- }
-
- $i = $i +1;
- }
-
- echo '</tr>';
- }
- ?>
- </table>
- </body>
- </html>
<html>
<head>
<style>
caption
{
margin: auto;
font-family: Arial, Times, "Times New Roman", serif;
font-weight: bold;
font-size: 1.2em;
color: #EFF3FF;
margin-bottom: 20px;
}
table
{
margin: auto;
border: 4px outset #EFF3FF;
border-collapse: collapse;
width: 100%;
}
th
{
background-color: #EFF3FF;
color: black;
font-size: 1em;
font-family: Arial, "Arial Black", Times, "Times New Roman", serif;
border: 1px
}
td
{
border: 1px solid black;
font-family: "Trebuchet MS", "Times", serif;
font-size: 1em;
text-align: center;
padding: 5px;
}
.lienCalendrierJour
{
background-color: #CDF0F0;
text-decoration: underline;
}
</style>
</head>
<body>
<?php
if(!isset($_GET['m']) && !isset($_GET['y']))
{
// Si on ne récupère rien dans l'url, on prend la date du 1er jour du mois actuel.
$timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
}
else
{
// Sinon on récupère la date du 1er jour du mois donné.
$timestamp = mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);
}
?>
<?php
/* Si le mois et l'année de la variable $timestamp correspondent au mois et à l'année d'aujourd'hui, on retient le jour actuel.
Sinon le jour actuel ne se situe pas dans le mois et on ne retient rien */
if(date('m', $timestamp) == date('m') && date('Y', $timestamp) == date('Y'))
{
$coloreNum = date('d');
}
?>
<?php
$m = array("01" => "Janvier", "02" => "Février", "03" => "Mars", "04" => "Avril");
$m += array("05" => "Mai", "06" => "Juin", "07" => "Juillet", "08" => "Août");
$m += array("09" => "Septembre", "10" => "Octobre", "11" => "Novembre", "12" => "Décembre");
$j = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
// Souvenez-vous que les dates en PHP commencent par dimanche !
?>
<?php
$numero_mois = date('m', $timestamp);
$annee = date('Y', $timestamp);
if($numero_mois == 12)
{
// Dans le cas du mois de décembre
$annee_avant = $annee;
$annee_apres = $annee + 1; // L'année d'après change
$mois_avant = $numero_mois - 1;
$mois_apres = 01; // Le mois d'après est janvier
}
elseif($numero_mois == 01)
{
// Dans le cas du mois de janvier
$annee_avant = $annee - 1; // L'année d'avant change
$annee_apres = $annee;
$mois_avant = 12; // Le mois d'avant est décembre
$mois_apres = $numero_mois + 1;
}
else
{
// Il ne s'agit ni de janvier ni de décembre
$annee_avant = $annee;
$annee_apres = $annee;
$mois_avant = $numero_mois - 1;
$mois_apres = $numero_mois + 1;
}
$numero_jour1er = date('w', $timestamp); // 0 => Dimanche, 1 => Lundi, 2 = > Mardi...
// Changement du numéro du jour car l'array commence à l'indice 0.
if ($numero_jour1er == 0)
{
/*
Si c'est dimanche, on le place en 6e position
(car on commencera notre boucle à 0)
*/
$numero_jour1er = 6;
}
else
{
// Sinon on met lundi à 0 ou mardi à 1 ou mercredi à 2...
$numero_jour1er--;
}
?>
<table>
<caption>
<?php
// Lien pour aller au mois précédent
echo '<a href="?m='.$mois_avant.'&y='.$annee_avant.'"><<</a>';
// Affichage du mois et de l'année
echo '<span style="color: #000000;"> '.$m[$numero_mois].' '.$annee.'</span> ';
// Lien pour aller au mois suivant
echo '<a href="?m='.$mois_apres.'&y='.$annee_apres.'">>></a>';
?>
</caption>
<tr>
<th>Lu</th>
<th>Ma</th>
<th>Me</th>
<th>Je</th>
<th>Ve</th>
<th>Sa</th>
<th>Di</th>
</tr>
<?php
echo '<tr>'; // Nouvelle ligne du tableau (celle de la 1ère semaine, donc)
// Écriture de colonnes vides tant que le mois ne démarre pas.
for($i = 0 ; $i < $numero_jour1er ; $i++)
{
echo '<td></td>';
}
for($i = 1 ; $i <= 7 - $numero_jour1er; $i++)
{
echo '<td><div class="';
if(isset($coloreNum) && $coloreNum == $i)
{
echo 'lienCalendrierJour';
}
else
{
echo 'lienCalendrier';
}
echo '">'.$i.'</div></td>';
}
echo '</tr>';
?>
<?php
$nbLignes = ceil((date('t', $timestamp) - ($i-1)) / 7);
for($ligne = 0 ; $ligne < $nbLignes ; $ligne++)
{
echo '<tr>'; // Nouvelle ligne du tableau (celle de la nouvelle semaine)
for($colone = 0 ; $colone < 7 ; $colone++)
{
if($i <= date('t', $timestamp))
{
echo '<td><div class="';
if(isset($coloreNum) && $coloreNum == $i)
{
echo 'lienCalendrierJour';
}
else
{
echo 'lienCalendrier';
}
echo '">'.$i.'</div></td>';
}
else
{
// On a fini d'écrire le mois on termine la tableau par des cellules vides
echo '<td></td>';
}
$i = $i +1;
}
echo '</tr>';
}
?>
</table>
</body>
</html>
Conclusion
Deux dernières recommendations : 1. Personalisez le design, celui que j'ai mis correspond à mon design, mais je doute que le votre soit un clone du mien ;) 2. Créez un fichier "calendrier.php" et incluez-le à l'aide d'une include (<?php include('calendrier.php'); ?>) là ou vous voullez le mettre. Le code n'en sera que plus lisible.
Historique
- 13 mars 2009 11:55:05 :
- Mise à jour d'un lien
- 13 mars 2009 11:56:26 :
- Mise à jour d'un lien
- 13 mars 2009 11:57:36 :
- Mise à jour d'un lien et correction de quelques fautes d'orthographe
- 13 mars 2009 12:00:41 :
- Mise a jour du code, correction des fautes
- 13 mars 2009 12:02:43 :
- Misa à jour du code, correction des fautes
- 13 mars 2009 12:10:41 :
- Edition des mots-clés
- 13 mars 2009 12:12:59 :
- Edition de la description
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
comment ajouter un calendrier en php [ par nacer183 ]
bonjour, je veut ajouter un calendrier dans mon site comment je doit faire? veuilez me fournir le code source merci.
PHP calendrier [ par lolla19_116 ]
bonjour tt le monde, j'ai une tt petite question : je veux faire calendrier comme ce site cliquez ici
pb de renvoi de parametre d'une page à une autre [ par helene38000 ]
Bonjoursj'ai un petit soucis:j'ai dans une page calendrier.php un calendrier cliquable . Set sur une page reservation.php j'ai un formulaire avec plu
PHP - Calendrier de réservation [ par yaya2669 ]
Bonjour,Je cherche un script qui me permettrait de faire un calendrier en php.J'ai regardé ceux qui sont déjà à disposition sur le site mais je n'arri
Recherche script calendrier html/php (Sans Php objet ni MySql) [ par lolymeupy ]
Bonjour,je suis à la recherche d'un script de calendrier en php/html et sans MySql; Pour les détails, voici le genre de calendrier que je recherche :<
CALENDRIER PHP OU JAVASCRIPT [ par eric93 ]
Bonjour à tous.Je suis débutant, et je suis en stage.Je dois réaliser un formulaire php pour la saisi d'un menu avec la date.Et mon tuteur veut que je
code php [ par parrain3000 ]
salut j'ai besoin de votre aide au sujet du code php d'une sélection de date sous forme de calendrier c'est à dire j'aierais selectionner une date en
Calendrier + php [ par lsamsoumal ]
Bonjour tout le monde j'ai une page php dans laquelle il ya un formulaire contenant un champ texte où je jeux saisir la date à partir d'un calendrier
calendrier en php pour gestion locative [ par Justkill ]
Bonjour à vous,je vous contact pour la création d'un calendrier pour afficher les dates louées et les dates libres pour les mois et les années sélecti
CALENDRIER DE RESERVATION EN PHP MYSQL [ par miniti ]
Bonjour,j'ai copié les fichiers pour faire un calendrier de réservation (http://www.phpcs.com/codes/CALENDRIER-RESERVATION-PHP-MYSQL_40895.aspx)j'ai c
|
Derniers Blogs
[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey [WP7] BESOIN D'AVOIR DES DONNéES EN CACHE[WP7] BESOIN D'AVOIR DES DONNéES EN CACHE par Nicolas
Les développeurs ASP.NET ont l'habitude de mettre des données en cache pour éviter de requêter a chaque fois la base de données. Et il est toujours utilie de penser que vos utilisateurs mobiles n'ont pas troujours une super connexion 3G/WIFI et un for...
Cliquez pour lire la suite de l'article par Nicolas [TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION[TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION par cyril
Lorsque l'on créé un Work Item dans TFS, il est possible de le classer dans un "area" et dans une "iteration". Dans la plupart des types de projet, un "area" correspond à une catégorie, une "iteration" à un numéro de version. Il est possible de cré...
Cliquez pour lire la suite de l'article par cyril SQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULLSQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULL par coq
Les fonctions d'agrégation comme MIN et MAX ignorent les valeurs NULL présentes dans le jeu de données sur lequel porte leur calcul, d'où le fameux message d'avertissement : Warning: Null value is eliminated by an aggregate or other SET operation...
Cliquez pour lire la suite de l'article par coq VOTEZ POUR WARNYGOVOTEZ POUR WARNYGO par Nicolas
La vidéo du projet Warnygo est disponible sur facebook et attend vos votes ! Pour rappel: Warnygo est une application Windows Phone 7 qui permet d'alerter tous utilisateurs inscrits qui se trouve dans la zone où se passe l'...
Cliquez pour lire la suite de l'article par Nicolas
Logiciels
sDEVIS-FACTURES vlPRO (3.8.0)SDEVIS-FACTURES VLPRO (3.8.0)sDEVIS-FACTURES vlPRO a été mis au point pour permettre besoins des particuliers, créateurs, entr... Cliquez pour télécharger sDEVIS-FACTURES vlPRO LettresFaciles (5.6.0)LETTRESFACILES (5.6.0)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles MyPlanning 2010 (5.6.0)MYPLANNING 2010 (5.6.0)MyPlanning 2010 permet de créer des plannings sous la représentation de diagrammes. Plannings pré... Cliquez pour télécharger MyPlanning 2010 Emicsoft Mac DVD en iPad Convertisseur (3.1.16)EMICSOFT MAC DVD EN IPAD CONVERTISSEUR (3.1.16)Emicsoft Mac DVD en iPad Convertisseur, logiciel professionnel de convertir les fichiers DVD en i... Cliquez pour télécharger Emicsoft Mac DVD en iPad Convertisseur Emicsoft ipad ménager pour mac (3.1.08)EMICSOFT IPAD MéNAGER POUR MAC (3.1.08)Emicsoft ipad ménager pour mac est spécialement conçu pour les utilisateurs Mac pour copier des f... Cliquez pour télécharger Emicsoft ipad ménager pour mac
|