Dates en francais SQL

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Dates en francais SQL

    Bonjour,

    je sais que beaucoup de sujets en parlent, j'ai essayé pas mal de chose qui étaient pour d'autres des solutions, malheureusement, pas pour moi.

    Je cherche à afficher mes dates en Francais tout simplement

    Je les récupère bien d'un champ DATE avec une requete de type :

    Code:
    SELECT DATE_FORMAT(jour,"%d %M %Y") as journee
    mais j'obtiens : 12 February 2017

    J'ai essayé les modifs de configuration.php en rajoutant $mosConfig_locale = 'fr_FR' (non pas en modifiant car cette ligne n'etait pas présente contrairement aux indications des posts lus)

    J'ai essayé en ajoutant
    Code:
    setlocale(LC_TIME, 'fr', 'fr_FR', 'french', 'fra', 'fra_FRA', 'fr_FR.ISO_8859-1', 'fra_FRA.ISO_8859-1', 'fr_FR.utf8', 'fr_FR.utf-8', 'fra_FRA.utf8', 'fra_FRA.utf-8');
    juste avant ma requete

    Je n'ai pas envie de faire du code sale avec des "january" = "janvier" ect, je cherche donc une méthode propre et définitive.

    Merci d'avance pour vos réponses
    Dernière édition par Minie à 15/02/2017, 11h38

  • #2
    Re : Dates en francais

    Bonjour,

    Pour mes affichages, j'utilise JHtml::_('date', <ma zone DB contenant la date> , "d F Y"). Voir https://docs.joomla.org/API16:JHtml/date

    Pascal
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Re : Dates en francais

      sans setlocale, que recuperes tu comme date ?

      sic est une date au format anglais, il faut ensuite la convertir via jdate comme le suggere pmlecomte.

      Commentaire


      • #4
        Re : Dates en francais

        Bonjour,

        merci pour vos réponses.

        En fait j'ai le même résultat avec et sans setlocale() : 12 February 2017

        C'est bien ce qui m'embête, setlocale() n'a aucune action sur ma page php.

        La solution Jdate peut être une solution, à tester, mais j'aimerais surtout comprendre pourquoi mon setlocale() ne fonctionne pas, c'est sensé forcer l'affichage en français alors comment est-ce possible que ca sorte en anglais pour une requête juste en dessous ?

        Commentaire


        • #5
          Re : Dates en francais

          La page apparaît bien comme définie en langue française, dans le code-source ?
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            Re : Dates en francais

            Le fonctionnement du setlocale semble dépendre de la version php http://php.net/manual/fr/function.setlocale.php

            J'ai trouvé une discussion conseillant LC_ALL au lieu de LC_time https://www.franceserv.fr/forum/topi...al-page-1.html

            Pascal
            If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

            Commentaire


            • #7
              Re : Dates en francais

              Ah il manquerais peut être donc le fichier de langue fr au niveau de mon serveur.

              Je vais jeter un coup d’œil à ca.

              Merci, je reviens dès que j'ai du nouveau.

              Commentaire


              • #8
                Re : Dates en francais

                Bon, j'ai résolu mon problème, voici le résonnement complet pour ceux qui en auraient besoin.

                Mon serveur est bien configuré mon problème relève plus du SQL que du PHP car lorsque j'écris
                Code:
                setlocale(LC_TIME, 'fr_FR.UTF8', 'fr.UTF8', 'fr_FR.UTF-8', 'fr.UTF-8');
                echo (strftime("%A %d %B"));
                J'ai bien
                Code:
                mercredi 15 février
                Mais lorsque je demande une date en SQL
                Code:
                SELECT DATE_FORMAT(jour,"%d %M %Y")
                J'obtiens toujours le mois en anglais
                Code:
                12 February 2017
                La setlocale() n'y est donc pour rien puisqu'elle gère le PHP et que je dois me tourner vers
                Code:
                SET lc_time_names = 'fr_FR';
                Mon problème est donc résolu en intégrant une requête supplémentaire avant ma requête principale :
                Code:
                $db->setQuery('SET lc_time_names = "fr_FR"');
                $db->execute();
                
                $db->setQuery('
                SELECT DATE_FORMAT(jour,"%d %M %Y") ... reste de ma requête
                Merci à vous de m'avoir aidé à réfléchir sur le sujet, quand j'y pense, je m'acharnais sur PHP alors que SQL etait seul responsable...

                Commentaire

                Annonce

                Réduire
                Aucune annonce pour le moment.

                Partenaire de l'association

                Réduire

                Hébergeur Web PlanetHoster
                Travaille ...
                X