IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Afficher les mois en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par défaut Afficher les mois en PHP
    Bonjour,

    je souhaiterai afficher 12 mois à partir du mois en cours..

    Exemple :

    Septembre 2012
    Octobre 2012
    Novembre 2012
    Decembre 2012
    Janvier 2013
    ...

    J'ai fait ça mais ca merde au mois de février qui affiche Mars (car nous sommes le 30/09)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    $date1 = date("n-Y");
    $dat2 = mktime(0, 0, 0, date("m") + 1, date("d"), date("Y")); $date2 = date("n-Y", $dat2);
    $dat3 = mktime(0, 0, 0, date("m") + 2, date("d"), date("Y")); $date3 = date("n-Y", $dat3);
    $dat4 = mktime(0, 0, 0, date("m") + 3, date("d"), date("Y")); $date4 = date("n-Y", $dat4);
    $dat5 = mktime(0, 0, 0, date("m") + 4, date("d"), date("Y")); $date5 = date("n-Y", $dat5);
    $dat6 = mktime(0, 0, 0, date("m") + 5, date("d"), date("Y")); $date6 = date("n-Y", $dat6);
    $dat7 = mktime(0, 0, 0, date("m") + 6, date("d"), date("Y")); $date7 = date("n-Y", $dat7);
    $dat8 = mktime(0, 0, 0, date("m") + 7, date("d"), date("Y")); $date8 = date("n-Y", $dat8);
    $dat9 = mktime(0, 0, 0, date("m") + 8, date("d"), date("Y")); $date9 = date("n-Y", $dat9);
    $dat10 = mktime(0, 0, 0, date("m") +9, date("d"), date("Y")); $date10 = date("n-Y", $dat10);
    $dat11 = mktime(0, 0, 0, date("m") + 10, date("d"), date("Y")); $date11 = date("n-Y", $dat11);
    $dat12 = mktime(0, 0, 0, date("m") + 11, date("d"), date("Y")); $date12 = date("n-Y", $dat12);
     
    $m = array('','Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
      $decoupe1 = explode('-', $date1);   $d=$decoupe1[0];
      $decoupe2 = explode('-', $date2);   $d2=$decoupe2[0];
      $decoupe3 = explode('-', $date3);   $d3=$decoupe3[0];
      $decoupe4 = explode('-', $date4);   $d4=$decoupe4[0];
      $decoupe5 = explode('-', $date5);   $d5=$decoupe5[0];
      $decoupe6 = explode('-', $date6);   $d6=$decoupe6[0];
      $decoupe7 = explode('-', $date7);   $d7=$decoupe7[0];
      $decoupe8 = explode('-', $date8);   $d8=$decoupe8[0];
      $decoupe9 = explode('-', $date9);   $d9=$decoupe9[0];
      $decoupe10 = explode('-', $date10);   $d10=$decoupe10[0];
      $decoupe11 = explode('-', $date11);   $d11=$decoupe11[0];
      $decoupe12 = explode('-', $date12);   $d12=$decoupe12[0];
     
     
     echo $m[$d].' '.$decoupe1[1].'<br />';
     echo $m[$d2].' '.$decoupe2[1].'<br />';
     echo $m[$d3].' '.$decoupe3[1].'<br />';
     echo $m[$d4].' '.$decoupe4[1].'<br />';
     echo $m[$d5].' '.$decoupe5[1].'<br />';
     echo $m[$d6].' '.$decoupe6[1].'<br />';
     echo $m[$d7].' '.$decoupe7[1].'<br />';
     echo $m[$d8].' '.$decoupe8[1].'<br />';
     echo $m[$d9].' '.$decoupe9[1].'<br />';
     echo $m[$d10].' '.$decoupe10[1].'<br />';
     echo $m[$d11].' '.$decoupe11[1].'<br />';
     echo $m[$d12].' '.$decoupe12[1].'<br />';
    comment faire svp ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    2 éléments utiles :
    -> for(...)
    -> % (modulo)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $m = array('','Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
     
    $date1 = date("n-Y");
    $decoupe_date1 = explode('-', $date1);
    $mois_date1 = $decoupe_date1[0];
    $annee_date1 = $decoupe_date1[1];
    echo '$date1 = '.$date1.'<br /><br />';
     
    $annee = $annee_date1;
    for($i=($mois_date1-1); $i<($mois_date1-1+12); $i++){
    	echo $m[1+($i%12)].' '.$annee.'<br />';
    	// Décembre ? on change d'année
    	if(1+($i%12)==12) { $annee++; }
    }
    ?>
    Dernière modification par Invité ; 30/09/2012 à 18h00.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par défaut
    merci bcp !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par défaut
    Pardon, je réouvre le sujet car toujours lié aux dates j'ai un pb,

    je souhaite que quand je click sur le div ou se trouve la date, l'afficher en ajax dans ma div à coté.

    Mon pb actuel est que vu que c le meme id il y a que Septembre 2012 qui s'affiche... mais je ne sais pas comment faire pour que chaque id sois different mais surtout pour que ca affiche le bon id...

    Voici mon code :

    Le echo qui affiche les dates (entre le for { })
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<div onclick="envoipageajax()"  id="messageDIV" class="lienevents" style="cursor:pointer;"><img border="0" src="webadmin/img/ico/16/1343490236_calendar-day.png"> '.$m[1+($i%12)].' '.$annee.'</div><br />';
    la function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    			<script type="text/javascript">
    			function envoipageajax()
    			{
    				var param = 'action=affiche&msg='+document.getElementById('messageDIV').innerHTML;
    				$.ajax({
    				   type: "POST",
    				   url: "ajaxevent.php",
    				   data: param,
    				   success: function(msg){ 
    			//document.getElementById('afficheres').innerHTML = msg;
    			alert(msg);
    				   }
    				 });
    			}
     
    			</script>

  5. #5
    Invité
    Invité(e)
    Par défaut
    Change ta fonction pour transmettre les paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<div onclick="envoipageajax(\''.$m[1+($i%12)].'\', \''.$annee.'\')"  id="messageDIV" ...
    Sinon, explique-toi plus clairement sur ce que tu souhaites faire !

    Regarde aussi les cours et tutoriels PHP : http://php.developpez.com/cours/

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    PHP fournit absolument tout ce qu'il faut pour faire les manipulations des dates en natif avec la librairie ICU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    $date      = new \DateTime();          // maintenant
    $interval  = new \DateInterval('P1M'); // intervalle = 1 mois
    $formatter = new \IntlDateFormatter('fr', \IntlDateFormatter::SHORT, \IntlDateFormatter::NONE); // dates en français
    $formatter->setPattern('LLLL yyyy');   // mois long et année sur 4 digits
     
    for($i = 0; $i < 12; ++$i) {
        echo $formatter->format($date), '<br />';
        $date->add($interval);
    }
     
    ?>
    Il faut éviter de faire sa cuisine sur les dates dans son coin.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affiche les mois entre 2 date
    Par kira-3 dans le forum VB.NET
    Réponses: 1
    Dernier message: 08/05/2009, 22h20
  2. [POO] afficher les mois de l'année dans une boucle
    Par une_tite_question dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 16/08/2008, 09h15
  3. Afficher les mois vides dans une requête
    Par Nessie37 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 04/12/2007, 15h35
  4. Afficher les mois, jours et dates
    Par Premium dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/12/2006, 19h41
  5. Ma fonction qui affiche les mois débloque
    Par isa150183 dans le forum Langage
    Réponses: 4
    Dernier message: 19/10/2006, 21h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo