begin process at 2012 05 27 16:51:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > AVANCER OU REMONTER LE TEMP

AVANCER OU REMONTER LE TEMP


 Information sur la source

Note :
Aucune note
Catégorie :Date / Heure Classé sous :avancer, reculer, date, calendrier, agenda Niveau :Débutant Date de création :24/02/2006 Date de mise à jour :26/02/2006 07:05:00 Vu / téléchargé :7 363 / 213

Auteur : hrz

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

 Description

petit script pour avancer ou reculer la date de reference .
utilisable pour un agenda ,un calendrier ,un carnet de rendez vous ect.
l'utilisation de la fonction php mktime() permet de s'afranchir de pas mal de controle sur la validitee de la date calculer, la fonction fait ca tres bien pour nous ,pour finir une seule infos est transmise d'une page a l'autre .

Source

  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  • "http://www.w3.org/TR/html4/loose.dtd">
  • <html>
  • <head>
  • <title>
  • IncDecDate
  • </title>
  • <meta http-equiv="content-type" content="text/html; charset=utf-8">
  • <link rel="StyleSheet" href="IncDec.css" type="text/css">
  • </head>
  • <body>
  • <div align="center">
  • <?php
  • /* pour limiter les donnes transmises, seul une valeur timestamp est utilisee */
  • /* la fonction mktime corrige les erreurs de date et surtout les jours */
  • //if (!isset ($ref)) { // pour 1er affichage
  • // definition de la reference temp du script
  • if (isset($_GET["ref"])) { $ref=$_GET["ref"]; // verifier donnee transmise
  • }else{
  • $ref=time(); // sinon prendre le temp present
  • }
  • $Annee=date("Y",$ref); // Y pour l'annee en format long
  • $Mois =date("n",$ref); // important n => Mois sans les zéros initiaux
  • $Jour =date("j",$ref); // important j => jour sans les zéros initiaux
  • // calcul des infos pour la suite
  • $Aprec= mktime (0,0,0,$Mois,$Jour,$Annee-1); // calcul l'annee precedente
  • $Mprec= mktime (0,0,0,$Mois-1,$Jour,$Annee); // calcul le mois precedent
  • $Jprec= mktime (0,0,0,$Mois,$Jour-1,$Annee); // calcul le jour precedent
  • $Jsuivant= mktime (0,0,0,$Mois,$Jour+1,$Annee); // calcul le jour suivant
  • $Msuivant= mktime (0,0,0,$Mois+1,$Jour,$Annee); // calcul le mois suivant
  • $Asuivant= mktime (0,0,0,$Mois,$Jour,$Annee+1); // calcul l'annee suivante
  • $url= $_SERVER['PHP_SELF']; // faut bien faire un lien non?
  • ?>
  • <div id="aff">
  • <A HREF="<?php print $url."?ref=$Aprec";?>">
  • <IMG SRC="Dec_A.png" class="IncDec" alt="-A" title="Dec_A" />
  • </A>
  • <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
  • <A HREF="<?php print $url."?ref=$Mprec";?>">
  • <IMG SRC="Dec_M.png" class="IncDec" ALT="-M"></A>
  • <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
  • <A HREF="<?php print $url."?ref=$Jprec";?>">
  • <IMG SRC="Dec_J.png" class="IncDec" alt="-J" title="Dec_J" />
  • </A>
  • <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
  • <A HREF="<?php print $url;// pas d'infos pour retourner a maintenant
  • ?>">
  • <IMG SRC="0.png" ID="IncDec" ALT="Raz"></A>
  • <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
  • <A HREF="<?php print $url."?ref=$Jsuivant";?>">
  • <IMG SRC="Inc_J.png" class="IncDec" alt="+J" title="Inc_J" />
  • </A>
  • <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
  • <A HREF="<?php print $url."?ref=$Msuivant";?>">
  • <IMG SRC="Inc_M.png" class="IncDec" alt="+M" title="Inc_M" />
  • </A>
  • <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
  • <A HREF="<?php print $url."?ref=$Asuivant";?>">
  • <IMG SRC="Inc_A.png" class="IncDec" alt="+A" title="Inc_A" />
  • </A>
  • </div>
  • <br />
  • <b>
  • <?php
  • $D=date("z",$ref)+1;
  • print(date("l j F Y :\W\e\e\k=W \D\a\y=$D",$ref));
  • // inclure ici la fonction AfficheCalendrier du meme auteur
  • ?>
  • </b>
  • <br />
  • </div>
  • </body>
  • </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>
      IncDecDate
    </title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
   <link rel="StyleSheet" href="IncDec.css" type="text/css">
  </head>
<body>
<div align="center">
<?php
/* pour limiter les donnes transmises, seul une valeur timestamp est utilisee  */
/* la fonction mktime corrige les erreurs de date et surtout les jours         */
//if (!isset ($ref)) {               // pour 1er affichage
                   // definition de la reference temp du script
if (isset($_GET["ref"])) { $ref=$_GET["ref"];    // verifier donnee transmise
   }else{
   $ref=time();                                  // sinon prendre le temp present
}
$Annee=date("Y",$ref);                           // Y pour l'annee en format long
$Mois =date("n",$ref);                           // important n => Mois sans les zéros initiaux
$Jour =date("j",$ref);                           // important j => jour sans les zéros initiaux
                   // calcul des infos pour la suite
$Aprec= mktime (0,0,0,$Mois,$Jour,$Annee-1);     // calcul l'annee precedente
$Mprec= mktime (0,0,0,$Mois-1,$Jour,$Annee);     // calcul le mois precedent
$Jprec= mktime (0,0,0,$Mois,$Jour-1,$Annee);     // calcul le jour precedent
$Jsuivant= mktime (0,0,0,$Mois,$Jour+1,$Annee);  // calcul le jour suivant
$Msuivant= mktime (0,0,0,$Mois+1,$Jour,$Annee);  // calcul le mois suivant
$Asuivant= mktime (0,0,0,$Mois,$Jour,$Annee+1);  // calcul l'annee suivante
$url= $_SERVER['PHP_SELF'];                      // faut bien faire un lien non?
?>
<div id="aff">
   <A HREF="<?php print $url."?ref=$Aprec";?>">
     <IMG SRC="Dec_A.png" class="IncDec" alt="-A" title="Dec_A" />
   </A>
   <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
   <A HREF="<?php print $url."?ref=$Mprec";?>">
     <IMG SRC="Dec_M.png" class="IncDec" ALT="-M"></A>
   <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
   <A HREF="<?php print $url."?ref=$Jprec";?>">
     <IMG SRC="Dec_J.png" class="IncDec" alt="-J" title="Dec_J" />
   </A>
   <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
   <A HREF="<?php print $url;// pas d'infos pour retourner a maintenant
   ?>">
     <IMG SRC="0.png" ID="IncDec" ALT="Raz"></A>
   <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
   <A HREF="<?php print $url."?ref=$Jsuivant";?>">
     <IMG SRC="Inc_J.png" class="IncDec" alt="+J" title="Inc_J" />
   </A>
   <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
   <A HREF="<?php print $url."?ref=$Msuivant";?>">
     <IMG SRC="Inc_M.png" class="IncDec" alt="+M" title="Inc_M" />
   </A>
   <img src="spacer.gif" title="spacer" width="1" height="1" alt="_" />
   <A HREF="<?php print $url."?ref=$Asuivant";?>">
     <IMG SRC="Inc_A.png" class="IncDec" alt="+A" title="Inc_A" />
   </A>
</div>
<br />
  <b>
  <?php
   $D=date("z",$ref)+1;
   print(date("l j F Y :\W\e\e\k=W \D\a\y=$D",$ref));
// inclure ici la fonction AfficheCalendrier du meme auteur 
  ?>
  </b>
<br />
</div>

</body>
</html>

 Conclusion

c'est en analysant les stats de telechargement du script AfficheCalendrier.php qu'il m'est venue l'idee d'en ameliore une partie de la demo
ce petit bout de code y est donc directement compatible mais peut aussi vous servir dans d'autres occasions
ici les annees ,les mois et les jours sont calculer mais sur le meme principe on peut aussi travailler les heure ,minutes ou meme seconde enfin comme on veut.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

24 février 2006 16:18:21 :
-
24 février 2006 16:20:12 :
-
26 février 2006 07:05:01 :
pas le bon classement niveau dsl...

 Sources du même auteur

ECRIVEZ SIMPLEMENT VOS BOITES LISTE DEROULANTE
Source avec Zip Source avec une capture CALENDRIER PHP
EXPLORATEUR DE REPERTOIRES EN PHP

 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
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

 Sources en rapport avec celle ci

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALENDRIER SIMPLE par manuche
Source avec Zip Source avec une capture CALENDRIER + AGENDA TRÈS SIMPLE (GERER LES JOURS FÉRIÉS ET L... par mondherclubiste
Source avec Zip Source avec une capture CALENDRIER par pichpoich
CALCUL SIMPLE DU NOMBRE DE JOURS OUVRÉS ENTRE DEUX DATES (JO... par Astemius

Commentaires et avis

Commentaire de malik7934 le 24/02/2006 15:23:58

En quoi est-ce initié? Même les exemples de http://ch2.php.net/mktime sont plus complexes que ta source!

Fais-en quelque chose de plus utilisable en ajoutant la possibilité de savoir la date dans x jours ou il y a x jours par exemple! Tout ce que fait ta source, c'est plus ou moins 1...

Commentaire de hrz le 24/02/2006 16:32:19

change pour debutant si tu veut ca ne me derange pas ...
<de plus utilisable> : voir utiliser ce bout de code avec une fonction calendrier depose ici meme et ce sans aucune modification !
<Tout ce que fait ta source, c'est plus ou moins 1...> exact et utiliser la fonction mktime pour limitee les infos à traite depuis un formulaire ; desole de n'utilise que 24 ligne de php
#a lire# c'est en analysant les stats de telechargement du script AfficheCalendrier.php qu'il m'est venue l'idee d'en ameliore une partie de la demo (sur les 6 options proposees)
car c'est bien cette partie qui interesse le plus dans le script de base de la demos ,la fonction est moin compacte

Commentaire de coockiesch le 25/02/2006 10:47:58

Salut!
Quelques comments hors du code lui-même:
- c'est dommag de mélanger autant PHP et HTML, il devient difficile d'y voir le php
- on préfère utiliser echo à print, c'est plus rapide
- de même, on utilise les guillements simples '' à la place des doubles "" qui interprètent la chaîne et qui sont donc plus lents... "index.php?page=$variable" devient donc 'index.php?page=' . $variable
- HTML en minuscules...

:)

Voili voilou, tu peux déjà améliorer ca, si tu veux!

@++

R@f

Commentaire de hrz le 25/02/2006 13:59:31

le code php en lui meme se trouve entre la ligne 13 et la ligne 23
c'est ici que se trouve l'idee de gerer le temp pour un calendrier, agenda, ou n'inporte quel script de votre choix
pour le reste je fait le compte 8 print dont 7 avec un . soit 14 " remplacable  par un echo avec ' et encore la ligne 66 n'est pas aussi evidente a transformer. bref un gain de temp pour la partie exemple "bidon c'est vrai" de combien ? 1 pouillardieme de micro seconde . dans l'absolut c'est vrait de meme que utilise la , dans un echo fait peut etre encore gagner un chti qelque chose
je revient aux 20 ligne de php vraiment utile ici pas un print echo ou autre juste un petit bout de code court pour incremente ou decremente 1 jour, 1 mois, 1annee en profitant de la fonction mktime de php lui meme sans reinventer la poudre ni ecrire un kiriellle de ligne elle respecteron la dehontologie de certains puristes n'hesitant souvent pas a ecrire 20 pages juste pour gagner quelque pico seconde a l'affichage au risque de perdre quelques dixiemes de seconde a la lecture et a l'interpertation d'un code bien plus complexe.
desole d'avoir commence l'informatique a l'epoque ou 2k de memoire cadencee a 100Mhzr etait un luxe et ou on apprenait surtout a ecrire court et on ecrirait pas php sans eux.
une question a ceux ci, a une epoque ou il suffit de demander l'heure a la machine ,combien de lingnes de code ecriraient'ils pour en recree une horloge de toute piece avec a leurs seule disposition un timer qui repasserait toutes les seconde sur leur script ? : je repond 6 formules de calculs basic erites sur 2 ligne de 40  + un print pour affiche les 3 infos sorties .
je ne poursuivrait pas plus loin la polemique ;c'est vrait que ' est + rapide echo aussi mais ce n'est pas les seuls infos a prendre en compte la longueur du code en est une autre et ce n'est pas la seule
bref ici l'idee etait de ne traiter que pas une variable en moins de ligne possible si vous gardez une petite partie de l'idee de base et meme si tous le script est repris ou recrit, il restera utile a certains
je n'en veut a personne,juste que c'set une remarque qui revient un peut trop souvent a mon idee au detriment du reste tout aussi constructif.

Commentaire de coucou747 le 25/02/2006 14:21:02 administrateur CS

Plutot que de taper un commentaire de 10 pages, tu ferais mieux d'améliorer ton script... mais franchement, si on me demandait de faire la même chose sur le forum, je mettrais ça dans un dossier nommé "Hello world/php" parceque ça devrait être dans un tuto, et non une source... Ce genre de cas, même en débutant, je trouve ça null, alors en initié...

Commentaire de hrz le 25/02/2006 15:56:05

< parceque ça devrait être dans un tuto >
deja pas si mal en fait .merci

Commentaire de coucou747 le 25/02/2006 16:06:55 administrateur CS

avoir fait un bout de tuto n'est pas un exploit... des sources comme ça, je peux en faire trente ou quarente dans la journée, sans me fatiguer, et même si j'ai cours et que je manque d'inspiration...

Commentaire de malalam le 25/02/2006 21:02:06 administrateur CS

Bon...je mets mon grain de sel :
HRZ, j'ai pas mal de choses à dire, ici. Je comprends que tu aies mal pris les critiques de Malik, d'entrée. Même si...même si je suis d'accord avec lui. Mais le ton a dû être heurtant.
Mais pour la suite...tu es resté sur ta colère.
Alors, je veux bien que tu défendes tes echo, tes guillemets, et ton code. Seulement, j'ai un peu de mal à suivre ton raisonnement : tu reproches aux gens de pinailler pour des guillemets faisant gagner un pouillardième de seconde...puis tu enchaînes sur ton côté vétéran, issu d'une époque où il fallait économiser le code car 100 Mhz étaient un luxe ? Ce n'est pas un peu contradictoire, ça ?
Personnellement, j'ai commencé l'informatique avec un ZX81. 100 Mhz, ça n'était même pas imaginable, à l'époque...
Et pourtant, j'ai tendance aujourd'hui à toujours privilégier un code joli, clair, commenté, à qques millièmes de secondes. Après, tout dépend du projet...évidemment. Mais en l'occurence, si propreté et optimisation vont ensemble, je n'hésite pas.
Or ton code n'est effectivement pas optimisé du tout. Que tu le veuilles ou non.
Un code comme ça devrait être une fonction, d(autant plus qu'il est selon tes dires destinés à être intégré à un calendrier ou un truc dans le genre, et comme le dit Malik avec des paramètres pour pouvoir moduler le résultat à sa guise. Et un code comme ça pourrait être beaucoup plus court.
Quant à optimiser un minimum, je ne vois pas pourquoi tu prends ça mal : c'est un conseil, une aide, pas une attaque. Et c'est justifié.

Commentaire de hrz le 26/02/2006 07:03:30

bjr
Malik n'etait est n'est toujours pas vise dans mes reponse directement :c'est surtout le fait que je vois reguluierement et souvent par les meme la meme remarque surtout avec les fameux " et ' ect ;le fait est fonde je n'en doute pas a la lecture de differents  post et article a ce sujet .
pour le niveau initier ok j'ais deraper sur la categorie .
l'interret du code et du titre c'est 20 lignes de php regroupable en fonction ok et pour l'illustrer un reste de code bidon .
c'est justement cette zone de code qui est descendu a boulet rouge alors qu'elle devrait logiquement disparaitre dans les appliquation divers et c'est ici que j'ais vu rouge dsl .
mais je persite a dire que php ne se resume pas a de simple "  je ne suis ni 1er ni le seul qui prenne ce genre de post a la figure systematiquement.
sur d'autre forum ce sont les defits qui atisent les posts
ex: ecrire un calendrier en moin de 10 lignes juste pour le fun avec en prime une idee d'algoritme.. pour d'autre aplis
c'est l'idee que je voulais defendre pas le codage lui meme et ton post en ce sens est plus constructif  
ok je corrige la categorie

Commentaire de coucou747 le 26/02/2006 14:23:31 administrateur CS

hrz, si ton idée est de faire court, alors tu devrais faire du perl : connais tu le groupe des mongueurs de perls ? c'est un groupe de geeks qui se rencontrait dans un bar autour d'une bierre pour discuter projets et algorythmique... Tous programmaient en perl. Ils font un article quasiment tout les mois dans linux mag, et sont auteurs de très nombreux programmes unilignes...
Ils ont des concours d'unilignes, et de moins de 5 lignes. (une ligne comportant au maximum 80 caractères :) )

Bon, php est un dérivé de perl, alors on peut faire des unilignes, mais ils rament...
Moi aussi, je ne faisais pas gaffe à ce qu'Antho et Grenard disaient, et un beau jour, j'ai fais un jeu d'échec, il ramait tellement que je n'ai pas pu le publier : mon serveur est un pentium 1... C'est ce jour là que j'ai commencé à comprendre... Et depuis, la moindre optimisation est bonne a être utilisée... Lorsque le code ne devient pas claire, alors utilise les commentaires, mais optimise... As tu fais un benchmark de certains CMS sans aucun module de chargé ? as tu regardé le nombre de requettes Sql sur la page d'acceuil ? et le nombre d'erreurs de validation xhtml qu'on y trouve ? C'est écoeurant de voir que de grands CMS ou forums super utilisés sont super mal codés... Faut montrer l'exemple.
Un programmeur perl a écrit dans linux mag : "On n'est gourou que quand on code strict, et optimisé !"

Commentaire de hrz le 26/02/2006 16:16:21

< dans un bar autour d'une bierre > deja l'idee a l'air sympa :)
< un beau jour, j'ai fais un jeu d'échec, > deja chapeau bas c'est pas une mince affaire et je n'est aucun souci avec le fait que 'l'opti reste fondamentale, le moindre pouillardieme se fait tres vite sentir
<... Faut montrer l'exemple. > toujours ok ;y mettre un peu de style n'est pas mal non plus ,je ne compte plus les post sur le sujet qui ressemble a un copier coller :( ca en devient triste et vite enervant.
ici j'ais voulu partager une idee simplement ...
bon sujet clos on derive ,j'en veut pas pour autant a quelqu'un

Commentaire de coucou747 le 26/02/2006 17:33:45 administrateur CS

je ne vois pas en quoi c'est stylé de mettre un print au lieu d'un echo...

Commentaire de coockiesch le 26/02/2006 19:49:55

Salut!
hrz, quelques précisions par rapport à ce que tu as dit... J'aime bien l'idée de passer pour un vétéran dans l'informatique, ^^ Ceci dit, ce la ne fait que 5 ans que je touche à de la prog et je n'ai même pas atteint mes 19 ans... :D

Alors bon, je veux pas passer pour le vieu schnock du quoi qui tourne sur un 90MHz, :D

Pour la suite, oui, c'est du chipotage... Mais je trouve que ce n'est pas du chipotage inutile... J'ai vu le comment de Malik et j'ai voulu donner à mon tour quelques infos, que je voulais plus constructives... Mal m'en a pris, apparement, dommage...

@++

R@f

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Je trouve pas l'erreur sur mon script [ par Akash ] Salut à tous j'espère que vous pourrez m'aider. Voila le problème :Pour mon script de calendrier evenementiel j'ai besoin d'afficher des évènements pa problemes de lien dans un calendrier [ par hysteria74000 ] qulequ'un peut me dire pourquoi mes liens, dans mon calendrier, SUIVANT et PRECEDENT ne fonctionnent pas.Voici le code php::$lien=date("Y+m+d", mktime tri des dates [ par rukiyes ] bonjour,je doi faire un agenda, et pour l'instant dans ma page,j'ai la date d'aujourd'hui et la liste des dates que je recup&#232;re dans un champs d' requette si posssible [ par youyou26 ] bonjour tt le monde je suis un peu despérer j'ai petit calendrier et un fichier ¤.gif et chaque image et enregistré avec une date ce quie j'ai envie c Gestion de date dans une BDD [ par switsh ] Bonjour, Je suis actuellement en train de cr&#233;er un calendrier rectiligne pour des r&#233;servations de chambres. Pour le moment j'ai le calendr Calendrier amélioré??? [ par Monico9385 ] Bonjour, je viens vous voir car j'ai un probl&#232;me et je sais pas du tout comment le r&#233;soudre. Je voudrai r&#233;cup&#233;rer la date de tou Calendrier pour gallerie photo [ par gandalf76fr ] Bonjour, ayant ma famille distante, je cr&#233;e une gallerie photos pour qu'il puisse voir ma fille grandire.Jusque la je l'ai fait sous photoweb gal Exporter les données d'un agenda/calendrier outlook dans un format type xml [ par sayann ] Les dates avec MySQL [ par ImmortalPC ] Salut,je deviens fou avec mon calendrier J' ai une date de commencement et une date de finrespectivement : date_start et date_endLeur type : datetime communication entre deux page [ par mouness ] boujour j'ai un probleme et ce serait super si quelqu'un pouvai m'aider je m'explique. J'ai crée 2 frame l'un d'entre elle affiche un calendrier et l'


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,749 sec (3)

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