begin process at 2012 05 27 22:00:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CALENDRIER EN 70 LIGNES

CALENDRIER EN 70 LIGNES


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Classé sous :calendrier simple, date MySQL, php5 Niveau :Débutant Date de création :07/02/2011 Vu :3 931

Auteur : tchconst

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Un calendrier choix libre des années et des mois = jours positionnés ad hoc
Pas de fichier annexe à inclure ni image, tout est compris et commenté !
calendrier intrinsèque repris depuis le source de MANUCHE : pas de fichier inc (sauf peut-être les styles),
retour au format MySQL,    
Attention, par souci de légèreté de l'exercice, les entêtes HTML sont a minima
et bien sûr le fichier <a href> est à préciser !
tch.Const.

Source

  • <?php
  • $arrMois = array ('',' Janvier ',' F&eacute;vrier ',' Mars ',' Avril ',' Mai ',' Juin ',' Juillet ',' Ao&ucirc;t ',' Septembre ',' Octobre ',' Novembre ',' D&eacute;cembre ');
  • $arrJour = array ('Dimanche ','Lundi ','Mardi ','Mercredi ','Jeudi ','Vendredi ','Samedi ');
  • // date par défaut
  • $gt = getdate();
  • $defautJour = $gt['mday'];
  • $defautMois = $gt['mon'];
  • $defautAn = $gt['year'];
  • // on remplace éventuellement par les sélections :
  • $nuJour = (isset($_REQUEST['nuJour']))? $_REQUEST['nuJour']: $defautJour ;
  • $nuMois = (isset($_REQUEST['nuMois']))? $_REQUEST['nuMois']: $defautMois ;
  • $nuAn = (isset($_REQUEST['nuAn']))? $_REQUEST['nuAn'] : $defautAn ;
  • // détails de format :
  • $mkt = mktime(0,0,0, $nuMois, 1, $nuAn);
  • $nbJours = date('t', $mkt); // nb jours du mois
  • $idPremier = date('w', $mkt) ; // id jour semaine du premier jour du mois
  • if ($idPremier==0) $idPremier=7 ;
  • $mkt = mktime(0,0,0, $nuMois,$nuJour,$nuAn);
  • $idJour = date("w", $mkt); // id jour semaine du jour courant
  • // chaines
  • $nomJour= $arrJour[$idJour];
  • $nomMois= $arrMois[$nuMois];
  • $mysqlDate= date("Y-m-d H:i:s",$mkt) ;
  • ?>
  • <html><head><title>Calendrier</title>
  • <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  • <style>
  • a { color:#FFFFFF; text-decoration:none ;}
  • a:hover { color:#000000; font-wheight: bolder;}
  • .gras { font-weight:bold }
  • .table_cal { font-family:arial ; font-size:12px ; text-align:center ; border-style:solid ; border-witdth:1px; border-color:black; background-color:#669999 ; }
  • .td_an_mois { border-style:solid ; border-width:1px ; border-color:black; height:18px ; }
  • .td_plein { border-style:solid ; border-width:1px ; border-color:black; height:18px ; background-color:#669966 ;}
  • .td_vide { border-style:none ; height:18px ; }
  • </style>
  • </head>
  • <body>
  • <table class="table_cal">
  • <!-- ============== CHOIX ANNEE ============== -->
  • <tr>
  • <td class="td_an_mois" colspan="7" align="center">
  • <a class="gras" href="cal.php?&nuAn=<?php echo $nuAn-1 ?>&nuMois=<?php echo $nuMois ?>" > &lt;&lt;&nbsp; </a>
  • <span class="gras"><?php echo $nuAn ?></span>
  • <a class="gras" href="cal.php?&nuAn=<?php echo $nuAn+1 ?>&nuMois=<?php echo $nuMois ?>" > &nbsp;&gt;&gt; </a>
  • <input name="nuAn" type="hidden" value="<?php echo $nuAn ?>" />
  • </td>
  • </tr>
  • <!-- ============== CHOIX MOIS ============== -->
  • <tr>
  • <td class="td_an_mois" align="center" colspan="7">
  • <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
  • <select class='gras' name="nuMois" onChange="submit();" >
  • <?php
  • for ($m=1; $m<13; $m++) {
  • if ( $nuMois == $m ) {
  • echo "<option selected='selected' value='$m'>$arrMois[$m]</option>\n" ;
  • } else {
  • echo "<option value='$m'>$arrMois[$m]</option>\n";
  • }
  • }
  • ?>
  • </select>
  • </form>
  • </td>
  • </tr>
  • <!-- ============== CHOIX JOUR ============== -->
  • <tr><th>Lun</th><th>Mar</th><th>Mer</th><th>Jeu</th><th>Ven</th><th>Sam</th><th>Dim</th></tr>
  • <?php
  • $jour=1 ;
  • $trouved=FALSE;
  • // pour chaque semaine
  • for ($s=1 ; $s<=6 ; $s ++){
  • echo "<tr>";
  • // pour chaque colonne de jour
  • for( $j=1 ; $j<=7 ; $j++){
  • if ($jour<= $nbJours) {
  • // premier jour du mois ?
  • if ( $idPremier>$j && $s==1 && $trouved==FALSE ) {
  • echo "<td class='td_vide'></td>";
  • } else {
  • $trouved==TRUE;
  • echo "<td class='td_plein'><a href='cal.php?&nuAn=$nuAn&nuMois=$nuMois&nuJour=$jour'> $jour </a></td>\n";
  • $jour+=1;
  • }
  • }
  • }
  • echo "</tr>";
  • }?>
  • </tr>
  • </table>
  • <?php
  • echo "<p>date s&eacute;lectionn&eacute;e = $nomJour $nuJour $nomMois $nuAn</p>" ;
  • echo "<p>date au format mySQL = $mysqlDate</p>";
  • ?>
  • </body>
  • </html>
<?php
$arrMois = array ('',' Janvier ',' F&eacute;vrier ',' Mars ',' Avril ',' Mai ',' Juin ',' Juillet ',' Ao&ucirc;t ',' Septembre ',' Octobre ',' Novembre ',' D&eacute;cembre ');
$arrJour = array ('Dimanche ','Lundi ','Mardi ','Mercredi ','Jeudi ','Vendredi ','Samedi ');	
	// date par défaut 
	$gt = getdate();		
	$defautJour = $gt['mday']; 		
 	$defautMois = $gt['mon'];  			
	$defautAn =   $gt['year'];   				
	// on remplace éventuellement par les sélections :	
	$nuJour = (isset($_REQUEST['nuJour']))? $_REQUEST['nuJour']: $defautJour ;
	$nuMois = (isset($_REQUEST['nuMois']))? $_REQUEST['nuMois']: $defautMois ;
	$nuAn   = (isset($_REQUEST['nuAn']))?   $_REQUEST['nuAn']  : $defautAn   ;	
	// détails de format :
	$mkt = mktime(0,0,0, $nuMois, 1, $nuAn);
	$nbJours = date('t', $mkt); 		// nb jours du mois  
	$idPremier = date('w', $mkt)  ;		// id jour semaine du premier jour du mois  
	if ($idPremier==0) $idPremier=7 ;	
	$mkt = mktime(0,0,0, $nuMois,$nuJour,$nuAn);
	$idJour = date("w", $mkt);			// id jour semaine du jour courant 	
	// chaines  
	$nomJour= $arrJour[$idJour];	
	$nomMois= $arrMois[$nuMois];
	$mysqlDate= date("Y-m-d H:i:s",$mkt) ; 
?>
<html><head><title>Calendrier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
	a 		{ color:#FFFFFF; text-decoration:none ;}
	a:hover 	{ color:#000000; font-wheight: bolder;}
	.gras 		{ font-weight:bold }
	.table_cal  	{ font-family:arial ; font-size:12px ; text-align:center ; border-style:solid ; border-witdth:1px; border-color:black; background-color:#669999 ; }
	.td_an_mois	{ border-style:solid ; border-width:1px ; border-color:black; height:18px ; }
	.td_plein 	{ border-style:solid ; border-width:1px ; border-color:black; height:18px ; background-color:#669966 ;}
	.td_vide 	{ border-style:none ; height:18px ; }
</style>
</head>  
<body>
<table class="table_cal">
<!-- ==============  CHOIX ANNEE  ============== -->
<tr>
	<td class="td_an_mois" colspan="7" align="center">   
		<a class="gras" href="cal.php?&nuAn=<?php echo $nuAn-1 ?>&nuMois=<?php echo $nuMois ?>" > &lt;&lt;&nbsp; </a>
		<span class="gras"><?php echo $nuAn ?></span>
		<a class="gras" href="cal.php?&nuAn=<?php echo $nuAn+1 ?>&nuMois=<?php echo $nuMois ?>" > &nbsp;&gt;&gt; </a>
		<input name="nuAn" type="hidden" value="<?php echo $nuAn ?>" />
	</td>
</tr>
<!--  ==============  CHOIX MOIS  ============== -->
<tr>
	<td class="td_an_mois" align="center" colspan="7">
	<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
	<select class='gras' name="nuMois" onChange="submit();" >
	<?php
	for ($m=1; $m<13; $m++) {
		if ( $nuMois == $m ) {
			echo "<option selected='selected' value='$m'>$arrMois[$m]</option>\n" ;
		} else {
			echo "<option value='$m'>$arrMois[$m]</option>\n";
		}
	}
	?>
	</select>
	</form>
	</td>
</tr>
<!-- ==============  CHOIX JOUR  ============== -->
<tr><th>Lun</th><th>Mar</th><th>Mer</th><th>Jeu</th><th>Ven</th><th>Sam</th><th>Dim</th></tr>
	<?php
	$jour=1 ;
	$trouved=FALSE;
	// pour chaque semaine
	for ($s=1 ; $s<=6 ; $s ++){
		echo "<tr>";
		// pour chaque colonne de jour  
		for( $j=1 ; $j<=7 ; $j++){
			if ($jour<= $nbJours) {
				// premier jour du mois ?
				if ( $idPremier>$j && $s==1 && $trouved==FALSE ) {
					echo "<td class='td_vide'></td>";
				} else { 
					$trouved==TRUE;
					echo "<td class='td_plein'><a href='cal.php?&nuAn=$nuAn&nuMois=$nuMois&nuJour=$jour'> $jour </a></td>\n";
					$jour+=1;
				}	
			}		
		}
	echo "</tr>";
	}?>
</tr>
</table>
<?php 		
echo "<p>date s&eacute;lectionn&eacute;e = $nomJour $nuJour $nomMois $nuAn</p>" ;
echo "<p>date au format mySQL = $mysqlDate</p>";
?> 
</body>
</html>

 Conclusion

Depuis le source de MANUCHE (janvier 2011), merci...
avec en plus et en moins : les styles ok, l'emploi optimisé de getDate() et de date(), de echo "''" etc
et pas de ces bizarres coefficients !
A retenir : dans tous les cas, le traitement PHP des formulaires doit se positionner AVANT le HTML


 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche
Source avec Zip Source avec une capture [POO] OBJET CONVERTISSANT UN NOMBRE DE SECONDES EN DIFFÉRENT... par Dariumis

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MY.BOOKMARKS par inwebo
Source avec Zip M.V.C M.E.D par faceme
Source avec Zip Source avec une capture TODO LIST (AJAX/PHP5) par VinceMonkeyz
CLASSE WIKILOC par aKheNathOn
Source avec Zip Source avec une capture GÉNÉRATION DE FORMULAIRES HTML PERSONNALISÉS. par beejeridou

Commentaires et avis

Commentaire de phpAnonyme le 07/02/2011 18:27:55

Mouais sinon, un calendrier utilisant la classe DateTime serait de trop ?
Pas si sûre, beaucoup de calendrier ont été présentés ici(surtout ces jours-ci), tous avec leurs "caractéristiques", mais aucune(si je me trompe pas) utilisant la classe DateTime ! Enfin, bon tanpis !

Commentaire de 007Julien le 08/02/2011 15:52:16

Un détail : tant qu'à utiliser un $_SERVER['PHP_SELF'] pour les mois, pourquoi l'abandonner pour le reste du calendrier ?

Sinon, bel exercice, bien présenté, avec beaucoup d'aller et retour PHP-HTML. Ne serait-t-il pas préférable d'épargner un peu le serveur en allongeant progressivement, en PHP, une seule chaîne HTML à insérer in fine.

Et puis, pourquoi ne pas réserver le PHP pour s'adapter aux clients et afficher simplement leur calendrier ?

À cet égard la page suivante illustre des possibilités malheureusement trop souvent inexploitées sur des pages pourtant exposées au monde entier ?
http://jqueryui.com/demos/datepicker/#localization

Commentaire de cod57 le 09/02/2011 13:59:38 7/10

bonjour

sympa ton code comme  007Julien -> tant qu'à utiliser un $_SERVER['PHP_SELF']

a++

Commentaire de manuche le 26/02/2011 12:56:46

Cher tchconst,  tu m'a remotivé.
J'ai modifié mon script initial vers plus de simplification, en essayant de tenir compte des commentaires divers et d'idées contenues dans ton propre script,  et en mettant le calendrier sous forme de 'fonction' à inclure dans n'importe quel fichier.

Bonne continuation !!

Commentaire de studiofrc le 04/03/2011 18:09:35

Bon code très bien expliqué.
Il serait bien à l'avenir de colorer la date du jour actuel ainsi que les weekends et jours fériés. Enfin c'est une idée à développer. Bonne continuation et merci pour le script !!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

differnec entre php 4 et php5 [ par hardelgylls ] Bonjourpetite question :j'ai passer un oral et l'examinateur m'a demandé quel était la différence entre php4 et php5. et la gros blanc, est ce que qqu Doc PHP5 sniff sniff [ par slhuilli ] Bonjour, Bonsoir,Je suis a la recherche d'un PDF qui recenserait les mots-clefs + explications (bref un bouquin complet) sur PHP 5 qui parait-il est Pb passage PHP4 -> PHP5 [ par Galmiza ] Salut,J'ai acheté un bouquin pour débuter le PHP.J'ai suivi a la lettre les instructions du livre:-installer EasyPHP 1.7-installer PHP 5.0..-lancer Ea Cohabitation PHP4 PHP5 sur même serveur ! [ par Zacland ] Ce n'est pas une question, mais je me doute que certaines personnes veulent essayer de faire cohabiter 2 versions de PHP sur un même serveur Apache... Un caractére se trouve t'il dans ma chaîne... [ par juki_webmaster ] Bonsoir,Je travaille depuis 14h cette apres-midi sur une fonction alternative d'une fonction connu et disponible uniquement sur php5, je fait cette fo PHP5 en PHP3 [ par el shaddai ] J'ai développé une partie de site en PHP5. MAlheureusement , chargé chez FREE, ils n'utilisent que PHP3. Y a t-il une manip simple pour qur du PHP5 pa PHP5 et MySQL 4.1.7 [ par TMT ] J'ai installé PHP5 et MySQL sur mon Windows XP avec IIS. J'ai bien activé le module php_mysql dans le fichier php.ini Là mon problème est qu-à chaque php4 vers php5 [ par aurelielaugraud ] Bonjour, Je suis passée de php4 à php5 pour utiliser la librairie graphique GD. Seulement, un programme que j'avais précédemment faire refuse de fonct Modification d'un script pour conformité avec php4 et/ou php5 [ par christobal ] Bonjour, depuis plusieurs ann&#233;es j'utilise le m&#234;me script pour mes sites.Maitenant avec les derrnieres version de PHP4 et PHP5 ce script ne Connection mysql avec php5 [ par Chess0 ] Bonjour, j'ai install&#233; r&#233;cemment la derni&#232;re version de mysql ainsi que la derni&#232;re version de php (5). J'ai essay&#233; la connec


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales