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 :

Affichage date depuis MySQL en français et en lettres [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Affichage date depuis MySQL en français et en lettres
    Bonjour à tous,

    Et voici encore un message de débutant (encore un ! :o),...

    Je cherche à afficher une date sous la forme " mois (en lettre et en français) année (à 4 chiffre)" depuis une BD MySQL, où celle-ci est stockée en format américain yyyy-mm-dd.

    J'ai tatonné jusqu'à trouver cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    // connexion à la BD
    	include '../php/include/connexion.php';	
    // affichage de la date selectionnee
    $select = "SELECT DATE_FORMAT(MA_COLONNE_DATE, '%B %Y') as MA_COLONNE_DATE from MA_TABLE where MA_COLONNE_DATE = '2011-03-01' ";
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $row = mysql_fetch_array($result);
    	echo '<p>'.$row['INS_DATE'].'</p>';
    mysql_free_result($result);
    ?>
    mais l'affichage du mois n'est pas reconnu, et j'obtiens: "B 2011" au lieu de "mars 2011"

    Quelqun pourrait-il m'aider sur ce point ?

    Avec tous mes remerciements par avance (Merci, Merci, Merci )

    Bonne soirée à tous !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    il faut changé le lc_time_names, si tu veux une date en francais, sinon le faire en PHP avec IntlDateFormatter

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord Merci pour cette réponse rapide.

    Petite précision utile, mon site est hebergé chez Free, je suis donc assez limité du côté Mysql (je passe par l'interface phpMyAdmin). J'y ai passé la commande suivante: "SET lc_time_names = 'fr_FR'" ce qui n'a pas donné le résultat escompté (peut-être m'y suis-je mal pris!)

    Côté php je rame un peu (c'est un euphémisme ) avec IntlDateFormatter. J'ai essayé d'adapter (sans succès) l'exemple1 au français pour comprendre le fonctionnement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fmt = datefmt_create( "fr_FR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,'French/France', IntlDateFormatter::GREGORIAN  );
    echo datefmt_format( $fmt , 0);
    Donc, si je pouvais avoir un petit peu plus d'explication cela m'aiderait beaucoup !

    Merci d'avance !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    chez free pas possible de changer la conf mysql, free n'as pas Intl non plus,
    je te conseil donc d’utiliser strtotime + strftime

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    OK, Merci, j'ai regardé et testé avec une valeur pour comprendre le fonctionnement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setlocale(LC_TIME, "fr_FR");
    echo strftime('%B %Y', strtotime('2011-03-01'));
    cela m'affiche bien "mars 2011"

    Mais ce que je ne comprend pas; c'est comment faire la même chose avec l'enregistrement que je récupère avec mon select.

    Quelle syntaxe dois-je utiliser ?

    Merci encore pour cette précieuse aide

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par arch92 Voir le message
    OK, Merci, j'ai regardé et testé avec une valeur pour comprendre le fonctionnement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setlocale(LC_TIME, "fr_FR");
    echo strftime('%B %Y', strtotime('2011-03-01'));
    cela m'affiche bien "mars 2011"

    Mais ce que je ne comprend pas; c'est comment faire la même chose avec l'enregistrement que je récupère avec mon select.

    Quelle syntaxe dois-je utiliser ?

    Merci encore pour cette précieuse aide

    tu mets $row['INS_DATE'] a la place de 2011-03-01

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Youpi !!!

    Je réecris le code en entier pour ceux qui liront cet article (en corrigeant l'erreur que j'avais faite en écrivant INS_DATE au lieu de MA_COLONNE_DATE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    // connexion à la BD
    	include '../php/include/connexion.php';	
    // affichage de la date selectionnee
    setlocale(LC_TIME, "fr_FR");
    $select = "SELECT MA_COLONNE_DATE from MA_TABLE where MA_COLONNE_DATE = '2011-03-01' ";
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $row = mysql_fetch_array($result);
    	echo strftime('%B %Y', strtotime ($row['MA_COLONNE_DATE']));
    mysql_free_result($result);
    ?>
    Mille Merci stealth35 pour m'avoir aidé à comprendre comment cela fonctionne

    Aaaargh! je ne trouve pas le bouton "résolu" Bon, j'envoie ce message, je suppose qu'il apparaît après.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Autre
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Variante mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    setlocale(LC_TIME, "fr_FR");
    $select = "SELECT concat(monthname(date(ma_colonne_date)),' ',year(date(ma_colonne_date))) from ma_table where date(ma_colonne_date) = '2011-03-01' ";
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
     
    echo $result
    affiche mars 2011

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

Discussions similaires

  1. [MySQL] [PHP] Affichage date avec mois en français
    Par vixious dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 16/06/2009, 11h30
  2. affichage date en français
    Par hamma2 dans le forum Mise en forme
    Réponses: 2
    Dernier message: 29/06/2008, 12h47
  3. [MySQL] Affichage de caracteres etrangers depuis MySQL
    Par nabab dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/07/2007, 00h07
  4. [Dates] Format de date MySQL vers français
    Par tcompagnon dans le forum Langage
    Réponses: 4
    Dernier message: 17/07/2007, 13h02
  5. affichage d'une date depuis mysql
    Par kitty2006 dans le forum Requêtes
    Réponses: 7
    Dernier message: 22/08/2006, 17h56

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