Partage
  • Partager sur Facebook
  • Partager sur Twitter

Retourner une Date dans le bon ordreJJ-MM-AAAA

Sujet résolu
    18 mars 2006 à 14:51:20

    Bonjour,

    j'ai un formulaire qui envoye a une table la date de l'enregistrement.

    Or quand je fait une requete pour afficher les dates celle ci sortent sous le format aaaa-mm-jj

    Mon champ date a un type date comment faire pour avoir un affichage de la date dans le bon ordre?

    Merci a vous!
    • Partager sur Facebook
    • Partager sur Twitter
      18 mars 2006 à 14:52:50

      Avec les expressions régulières :)

      $date = ereg_replace('^([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})$',
                           '\3/\2/\1', $date_mysql);

      Par exemple...
      • Partager sur Facebook
      • Partager sur Twitter
        18 mars 2006 à 14:57:40

        ca marche impeccable mais je comprend pas comment ca fonctionne?

        Tu peux me donner une explication rapide ou un lien stp?

        En tout cas merci beaucoup!
        • Partager sur Facebook
        • Partager sur Twitter
          18 mars 2006 à 15:04:18

          ereg_replace prend 3 paramètres.

          1er : le schéma de la variable $date_mysql, ici en l'occurence :
          - la variable commence par un chiffre de 0 à 9 ([0-9]), sur 2 ou 4 caractères ({2,4})
          - ensuite, on a un tiret
          - vient la gestion du mois : c'est un chiffre entre 0 et 9, sur 1 ou 2 caractères.
          - ensuite, un tiret
          - et pareil pour la fin : c'est un chiffre entre 0 et 9, sur 1 ou 2 caractères.

          La première partie correspond donc bien au SSAA
          Puis, on va garder le MM
          Et enfin le JJ

          Le tout étant pris dans cet ordre, le premier a le chiffre 1, etc etc

          2ème paramètre : le format de la variable retournée (ici $date).

          On prend le 3ième (JJ) puis on met un "/", puis on prend le second (MM), puis un autre "/", et le premier (SSAA)...

          Et voilà...

          En résumé :

          Date donnée : 2006-12-01 (SSAA-MM-JJ)
          2006 : 1er élément
          12 : second élément
          01 : premier élément

          Donc, date retournée : 01/12/2006 (JJ/MM/SSAA)

          Ce que tu voulais ;)
          • Partager sur Facebook
          • Partager sur Twitter
            18 mars 2006 à 15:06:18

            Excellent merci beaucoup pour l'explication!
            • Partager sur Facebook
            • Partager sur Twitter
              18 mars 2006 à 15:50:25

              SELECT pseudo, machin, DATE_FORMAT( nomduchampdate, '%d/%m/%Y %Hh%i:%s' ) AS date FROM table
              • Partager sur Facebook
              • Partager sur Twitter
                18 mars 2006 à 16:31:40

                Citation : YanisLiadon

                Je t'en pries ;)


                Pas besoin de regex pour afficher une date. ^^
                En plus, les POSIX, c'est très lent! :-°

                Comme l'a indiqué Haek, date_format dans la requête.
                Voir doc mysql

                Autrement, avec substr() ça le fait aussi.
                • Partager sur Facebook
                • Partager sur Twitter
                  18 mars 2006 à 17:53:17

                  Je pense qu'au moins là, il a plusieurs solutions... à lui de voir laquelle prendre...

                  Après, si en effet, votre méthode est plus rapide... autant qu'il s'en serve ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 mars 2006 à 18:46:07

                    Citation : YanisLiadon

                    Après, si en effet, votre méthode est plus rapide... autant qu'il s'en serve ;)



                    Non, j'ai juste dit ça pour t'ennuyer.
                    D'autant plus que les regex et moi, on n'est pas vraiment copain copain ! :(
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 mars 2006 à 19:19:38

                      Vu que la solution de YanisLiadon marche tres bien et que ma base ne possede pas enormement d'enregistrement ca ne pose pas plus de probleme que ca pour le temps de reponse...

                      Merci a tous!
                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 mars 2006 à 19:32:06

                        Citation : Doberman

                        Vu que la solution de YanisLiadon marche tres bien


                        C'est pas parce que sa solu fonctionne qu'il faut l'utiliser. :colere:

                        L'emploi d'une regex est totalement inutile.
                        Son utilisation dans ce cas précis témoigne de la non-connaissance du sujet, de la mauvaise utilisation des dates et de mysql. ^^

                        Je répète : substr() ou date_format()
                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 mars 2006 à 19:45:17

                          Oui mais j'ai jamais dit etre un expert en utilisation des dates... la je fait quelque recherche a propos de
                          substr() et date_format()...

                          Mais j'avoue nager un peu dans les explications... lol
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Retourner une Date dans le bon ordreJJ-MM-AAAA

                          × 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