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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    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 émérite
    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
    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
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    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
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    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 émérite
    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
    Par défaut
    Essais avec des simples guillemets.
    Les caractères speciaux ne sont pas traduit.

  6. #6
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    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

+ 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