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
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|