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

PHP & Base de données Discussion :

[PHP] Affichage date avec mois en français [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut [PHP] Affichage date avec mois en français
    Bonjour à tous

    Voilà mon petit soucis,
    j'ai un p'tit menu déroulant qui permet de choisir un jour parmis 35.
    Je voudrais que le mois s'affiche en français, j'ai donc pour cela procédé de la manière suivante :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <?
     
    $m['01']="Janvier";
    $m['02']="Février";
    $m['03']="Mars";
    $m['04']="Avril";
    $m['05']="Mai";
    $m['06']="Juin";
    $m['07']="Juillet";
    $m['08']="Août";
    $m['09']="Septembre";
    $m['10']="Octobre";
    $m['11']="Novembre";
    $m['12']="Décembre";
     
    // test 1
    echo date('d')." ".$m[date('m')];
     
    // test 2
    echo date('d '.$m[date('m')],mktime(0,0,0,date('m'),date('d')-$h,date('Y')));
     
    echo '<form method=POST><b>Afficher les résultats du : </b><select name=date_selected onchange=submit()>';
     
     
    $h=0;
     
     
    for($k=0;$k<35;$k++) {
     
    	$date_dM = date('d M',mktime(0,0,0,date('m'),date('d')-$h,date('Y')));
     
    	$date_Ymd = date('Y-m-d',mktime(0,0,0,date('m'),date('d')-$h,date('Y')));
     
    	if($date_Ymd==$date_selected)	
    		echo '<option value="'.$date_Ymd.'" selected>'.$date_dM.'</option>';
     
    	else 
    		echo '<option value="'.$date_Ymd.'" >'.$date_dM.'</option>';
     
    	$h++;
     
    }
     
     
    echo '</select>
    	</form>';
     
     
    ?>
    Le test 1 m'affiche bien " 15 Juin "
    Par contre le test 2 m'affiche " 15 J000000006 "

    Je m'en remet a vous pour m'aider a résoudre ce petit casse tête.

    Cordialement,
    Vixious.

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Bonjour,
    Pour répondre directement à ta question, il fait echapper chaque character autre que les codes de date : exemple, pour décembre : \d\é\c\e\m\b\r\e

    Et voici une réponse indirecte :
    tu peux utiliser la fonction setlocale pour changer la langue de ton script courant, puis utiliser le code pour afficher le mois en toute lettre. Ainsi, 'décembre' sera afficher au lieu de 'december'.

    Z.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Salut Zwiter,

    J'ai essayé avec le setlocale, en ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setlocale(LC_TIME,fr_FR);
    aucune changement

    J'ai essayé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setlocale(LC_TIME,"fr");
    aucun changement pareil.

    Du coup je me suis tourné vers ta premiere réponse, ca marche, mais ca prend pas toute les lettre en compte.

    J'ai par exemple marqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $m['06']="\D\e\c\e\m\b\r\e";
    $m['07']="\J\u\i\l\l\e\t";
     
    echo date('d '.$m[date('m')],mktime(0,0,0,date('m'),date('d')-$h,date('Y')));
    echo '<br>';
    echo date('d '.$m[date('07')],mktime(0,0,0,date('m'),date('d')-$h,date('Y')));
    Et j'obtien comme resultat

    15 Decemb e
    15 Juille

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    hmmm.. en y reflechissant,
    je sais que \t equivaut a une tabulation lol
    je suppose que \r aussi fait un truc du meme style.

  5. #5
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Essais avec des simples guillemets.
    Les caractères speciaux ne sont pas traduit.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    alors ca marche nickel, seul petit bémol, ca affiche juin pour tout les mois :s
    voila mon code complet

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <?
     
    $m['01']='\J\a\n\v\i\e\r';
    $m['02']='\F\é\v\r\i\e\r';
    $m['03']='\M\a\r\s';
    $m['04']='\A\v\r\i\l';
    $m['05']='\M\a\i';
    $m['06']='\J\u\i\n';
    $m['07']='\J\u\i\l\l\e\t';
    $m['08']='\A\o\û\t';
    $m['09']='\S\e\p\t\e\m\b\r\e';
    $m['10']='\O\c\t\o\b\r\e';
    $m['11']='\N\o\v\e\m\b\r\e';
    $m['12']='\D\é\c\e\m\b\r\e';
     
    $mm=date('m');
     
     
    echo '<form method=POST>
    		<b>Afficher les résultats du : </b>
    		<select name=date_selected onchange=submit()>';
     
     
    $h=0;
     
     
    for($k=0;$k<35;$k++) {
     
    	$date_dM = date('d '.$m[$mm],mktime(0,0,0,$mm,date('d')-$h,date('Y')));
     
    	$date_Ymd = date('Y-m-d',mktime(0,0,0,$mm,date('d')-$h,date('Y')));
     
    	if($date_Ymd==$date_selected)	
    		echo '<option value="'.$date_Ymd.'" selected>'.$date_dM.'</option>';
     
    	else 
    		echo '<option value="'.$date_Ymd.'" >'.$date_dM.'</option>';
     
    	$h++;
     
    }
     
     
    echo '</select>
    	</form>';
     
     
    ?>
    si tu arrive a localiser l'erreur fais moi signe lol

  7. #7
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    c'est normal :
    Tu cherches a afficher tous les jours du mois de juin ($mm=date('m')).

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    j'ai beau chercher, modifier, alterner, et j'en passe... je trouve vraiment pas de solution a ce casse tete saturnien.
    peut etre que je me suis mal expliquer dans ce que je veux faire aussi, c'est simple ::

    avec ce code :

    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
     
    echo '<form method=POST>
    		<b>Afficher les résultats du : </b>
    		<select name=date_selected onchange=submit()>';
     
     
    $h=0;
     
     
    for($k=0;$k<35;$k++) {
     
    	$date_dM = date('d M',mktime(0,0,0,date('m'),date('d')-$h,date('Y')));
     
    	$date_Ymd = date('Y-m-d',mktime(0,0,0,date('m'),date('d')-$h,date('Y')));
     
    	if($date_Ymd==$date_selected)	
    		echo '<option value="'.$date_Ymd.'" selected>'.$date_dM.'</option>';
     
    	else 
    		echo '<option value="'.$date_Ymd.'" >'.$date_dM.'</option>';
     
    	$h++;
     
    }
     
     
    echo '</select>
    	</form>';
    j'obtien ca :




    moi ce que je veux c'est me servir de c'qui suit pour afficher le mois en francais :

    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
     
    $m['01']='\J\a\n\v\i\e\r';
    $m['02']='\F\é\v\r\i\e\r';
    $m['03']='\M\a\r\s';
    $m['04']='\A\v\r\i\l';
    $m['05']='\M\a\i';
    $m['06']='\J\u\i\n';
    $m['07']='\J\u\i\l\l\e\t';
    $m['08']='\A\o\û\t';
    $m['09']='\S\e\p\t\e\m\b\r\e';
    $m['10']='\O\c\t\o\b\r\e';
    $m['11']='\N\o\v\e\m\b\r\e';
    $m['12']='\D\é\c\e\m\b\r\e';
     
    $mm=date('m');

    alors, en dehors du mktime,
    lorsque je teste par exemple avec un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $m[date('04')];
    je me retrouve bien avec Avril affiché sur l'ecran,

    d'ou le fait que je me sois dis qu'en remplacant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $date_dM = date('d M',mktime(0,0,0,date('m'),date('d')-$h,date('Y')));
     
    // par
     
    $date_dM = date('d '.$m[$mm],mktime(0,0,0,$mm,date('d')-$h,date('Y')));

    ca marcherait, mais apparament soit j'ai zapper quelque chose, soit ben... j'ia zapé qq chose je vois pas d'autre solution ^^, puisqu'au final je me retrouve avec ca


    j'ai bien entouré en rouge le passage du 01 Juin au 31 Juin ( au lieu de 31 Mai ).

    Je vais continuer de chercher qu'est ce que j'ai bien pu oublier de rajouter, ou de modifier.
    Si jamais tu trouves quelque chose avant , fais moi le savoir ( evidément si tu as du temps libre a me consacrer )

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Tout d'abord, les noms de mois français ne prennent pas de majuscule.

    Ensuite :
    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
    <?php
      $m['01'] = 'janvier';
      $m['02'] = 'février';
      $m['03'] = 'mars';
      $m['04'] = 'avril';
      $m['05'] = 'mai';
      $m['06'] = 'juin';
      $m['07'] = 'juillet';
      $m['08'] = 'août';
      $m['09'] = 'septembre';
      $m['10'] = 'octobre';
      $m['11'] = 'novembre';
      $m['12'] = 'décembre';
     
      echo '<form method="POST">
              <b>Afficher les résultats du : </b>
              <select name="date_selected" onchange="this.form.submit()">';
     
      $i = 35;
      $jour = new DateTime();
      while($i > 0)
      {
        $date_dM = $jour -> format('d ') . $m[$jour -> format('m')];
        $date_Ymd = $jour -> format('Y-m-d');
        echo '<option value="' . $date_Ymd . '" >' . $date_dM . '</option>';
     
        $jour -> modify('-1 day');
        $i --;
      }
      echo '</select>
      </form>';
    ?>

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Salut jeca ^^

    désolé mais même avec ton code j'obtiens le même résultat :/

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    non, attend, fausse manip, je vais retester j'uploadais pas sur le bon ftp...

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Bah en fait non il marche nickel ton code Jeca, désolé j'avais complètement oublié de changer de ftp , du coup depuis tout a l'heure je charge plein d'autres pages et ça changeais rien je devenais fou la de voir que je faisais des modifs pour rien on mettra ça sur le compte de la fatigue ^^

    en tous cas,
    merci à toi et à Zwiter pour m'avoir aidé

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

Discussions similaires

  1. [css][php]affichage incoherent avec php
    Par lilia_dream dans le forum Balisage (X)HTML et validation W3C
    Réponses: 36
    Dernier message: 05/04/2009, 21h45
  2. affichage date avec heure et minutes courantes
    Par sasseur dans le forum SAS Base
    Réponses: 4
    Dernier message: 04/03/2009, 16h48
  3. [Dates] Le mois en français
    Par alpha2030 dans le forum Langage
    Réponses: 3
    Dernier message: 19/01/2009, 13h07
  4. Date avec mois sur 3 lettres
    Par zizou771 dans le forum PL/SQL
    Réponses: 9
    Dernier message: 28/08/2008, 14h26
  5. Affichage date avec logic:iterate dans jsp
    Par Philog dans le forum Struts 1
    Réponses: 2
    Dernier message: 21/07/2008, 08h40

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