Partage
  • Partager sur Facebook
  • Partager sur Twitter

SQL Langue de la date

setlocale()

    21 janvier 2018 à 13:41:24

    Hello,

    J'ai toujours quelques problèmes avec la date. Mon objectif est de récupérer les dates de ma base SQL et de les convertir en format jour mois année et ce en français. 

    J'ai réussi à les convertir au format FR (jj mm aaaa) mais je ne parviens pas à mettre l'ensemble en langue FR. Après lecture des forums, j'ai lu qu'on pouvait mettre des fonctions setlocale(). Si je comprends bien, il faut donc choisir la langue FR avec setlocale. Est-ce qu'une autre manipulation est nécessaire ? 

    Mon code actuel : 

    $reponse = $bdd->query("SELECT *, date_format(Date_activity,'%W %D %M %Y') AS format_date_acti
    FROM activities WHERE Date_activity > CURDATE() ORDER BY Date_activity" );
    
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
    ?>
    <?php setlocale(LC_TIME, 'fr_FR');?> 
    <?php echo $donnees ['format_date_acti'];
         ?><br />
       </p>
    <?php
    }

    Est-ce que quelqu'un pourrait me donner un coup de pouce ? Ca ne donne actuellement rien... Merci!

    -
    Edité par christophe. 21 janvier 2018 à 13:41:54

    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2018 à 14:41:16

      Ca fonctionne, merci!

      OK, si je comprends bien lorsque je veux juste transformer la langue d'une date issue d'une base SQL j'utilise donc SET lc_tim_names='fr_FR'. Quelle est la différence avec l'utilisation de "set locale"  pour ma culture gé ? :)

      -
      Edité par christophe. 21 janvier 2018 à 14:58:17

      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2018 à 15:33:15

        Ca dépend. Là tu utilises une fonction MySQL (date_format), donc une fonction PHP comme setlocale, peut difficilement avoir un impact sur MySQL. Si tu formates la date avec MySQL, c'est MySQL et non PHP que tu dois configurer (SET lc_time_names) pour qu'il te la renvoie dans la langue que tu veux. Inversement si ça avait été avec PHP (fonction date par exemple), là, c'est bien avec setlocale qu'il aurait fallu définir la langue.

        Encore que, si ça avait été avec PHP, on préférera utiliser la classe IntlDateFormatter pour formater une date plutôt que de reposer sur les locales systèmes dont le résultat est +/- imprévisible (entre Linux où les locales doivent être "activées" et l'UTF-8 qui n'existe pas sous Windows, difficile de faire un code portable).

        -
        Edité par julp 21 janvier 2018 à 15:35:58

        • Partager sur Facebook
        • Partager sur Twitter

        SQL Langue de la date

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown