Conversion date php

Bonjour,
Je recupere des dates de ma base de donnée sous la forme AAAA-mm-dd sous forme de variable $val['date'] et j'aimerai les afficher dans un tableau sous la forme dd-mm-AAAA.
Quelqu'un pourrait m'aider?
Merci

18 réponses

  1. Bonjour,

    Je te conseillerai d'utiliser la méthode split :

    $tabdate = split("-", $val['date']);
    $date = $tabdate[2] ."-".$tabdate[$1]."-".$tabdate[0];

    Normalement ça devrait te donner la date comme tu le souhaite.

    Bonne journée,
    Thamior.
    1. Merci de ta reponse,
      maintenant ca me mt un message d'erreur:
      syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\wamp\www\Tests\historique.php on line 14
      La ligne 14 correspondant à : $date = $tabdate[2] ."-".$tabdate[$1]."-".$tabdate[0];
      1. Il y a un $ dans la valeur de ton tabdate : $tabdate[$1] --> mieux vaut l'enlever ;)
        1. Oui, je viens de voir, petite erreur de ma part désolé ^^.

          J'ai testé le code et hormis ce "$" en trop le reste fonctionne ;).

          Thamior.
          1. c'est bien comme ça que je doit faire?
            $recherche = "SELECT * FROM timken ORDER BY id";
            $query = mysql_query($recherche);

            $tabdate = split("-", $val['date']);
            $date = $tabdate[2] ."-".$tabdate[1]."-".$tabdate[0];

            echo'<table style="border: 2px solid #000000; text-align:center; width: 1000px;">
            <tr>
            <th style="border: 1px solid #000000; background: #6daef7;">ID</th>
            <th style="border: 1px solid #000000; background: #6daef7;">Numéro de CN</th>
            <th style="border: 1px solid #000000; background: #6daef7;">Date</th>
            <th style="border: 1px solid #000000; background: #6daef7;">Poste concerné</th>
            <th style="border: 1px solid #000000; background: #6daef7;">Consommable remplacé</th>
            <th style="border: 1px solid #000000; background: #6daef7;">Code magasin</th>
            <th style="border: 1px solid #000000; background: #6daef7;">Symptôme</th>
            <th style="border: 1px solid #000000; background: #6daef7;">Nom de l\'intervenant</th>
            </tr>';

            while($val=mysql_fetch_array($query)){
            echo'<tr>
            <td align="center" style="border: 1px solid #000000;">'.$val['id'].'</td>
            <td align="center" style="border: 1px solid #000000;">'.$val['CN'].'</td>
            <td align="center" style="border: 1px solid #000000;">'.$val['date'].'</td>
            <td align="center" style="border: 1px solid #000000;">'.$val['poste'].'</td>
            <td align="center" style="border: 1px solid #000000;">'.$val['consommable'].'</td>
            <td align="center" style="border: 1px solid #000000;">'.$val['magasin'].'</td>
            <td align="center" style="border: 1px solid #000000;">'.$val['symptome'].'</td>
            <td align="center" style="border: 1px solid #000000;">'.$val['intervenant'].'</td>
            </tr>';
            }

            echo'</table>';

            Enfin, je doit mal m'y prendre car ça ne marche pas
            1. Petite solution :

              $recherche = "SELECT * FROM timken ORDER BY id";
              $query = mysql_query($recherche);

              $tabdate = split("-", $val['date']);
              $date = $tabdate[2] ."-".$tabdate[1]."-".$tabdate[0];

              echo'<table style="border: 2px solid #000000; text-align:center; width: 1000px;">
              <tr>
              <th style="border: 1px solid #000000; background: #6daef7;">ID</th>
              <th style="border: 1px solid #000000; background: #6daef7;">Numéro de CN</th>
              <th style="border: 1px solid #000000; background: #6daef7;">Date</th>
              <th style="border: 1px solid #000000; background: #6daef7;">Poste concerné</th>
              <th style="border: 1px solid #000000; background: #6daef7;">Consommable remplacé</th>
              <th style="border: 1px solid #000000; background: #6daef7;">Code magasin</th>
              <th style="border: 1px solid #000000; background: #6daef7;">Symptôme</th>
              <th style="border: 1px solid #000000; background: #6daef7;">Nom de l\'intervenant</th>
              </tr>';

              while($val=mysql_fetch_assoc($query)){
              $tabdate = split("-", $val['date']);
              $date = $tabdate[2] ."-".$tabdate[1]."-".$tabdate[0];
              echo'<tr>
              <td align="center" style="border: 1px solid #000000;">'.$val['id'].'</td>
              <td align="center" style="border: 1px solid #000000;">'.$val['CN'].'</td>
              <td align="center" style="border: 1px solid #000000;">'.$date.'</td>
              <td align="center" style="border: 1px solid #000000;">'.$val['poste'].'</td>
              <td align="center" style="border: 1px solid #000000;">'.$val['consommable'].'</td>
              <td align="center" style="border: 1px solid #000000;">'.$val['magasin'].'</td>
              <td align="center" style="border: 1px solid #000000;">'.$val['symptome'].'</td>
              <td align="center" style="border: 1px solid #000000;">'.$val['intervenant'].'</td>
              </tr>';
              }

              echo'</table>';

              Teste ça pour voir.

              Thamior.
              1. Bonsoir,

                au début, après la ligne $query=

                $tabdate = split("-", $val['date']);
                $date = $tabdate[2] ."-".$tabdate[1]."-".$tabdate[0];


                ne sert à rie, tu peux les enlever
                1. Merci Thamior, ca marche.
                  Je peut te demander autre chose.

                  En fait je voudrai aussi savoir passer la date en us pour l'envoyer du formulaire à la base de donnée.
                  Je passe par la page suivante:
                  <?php

                  if(empty($_POST['intervenant']) || empty($_POST['date']) || empty($_POST['CN']) || empty($_POST['poste']) || empty($_POST['symptome']) || empty($_POST['consommable']) || empty($_POST['magasin'])){
                  echo '<script>alert(\'Vous n\avez pas rempli tous les champs!\')</script>';
                  echo'<meta http-equiv="refresh" content="0 url=saisiedesdonnees.php"/>';
                  } else {
                  //on renomme les variables POST
                  $intervenant = $_POST['intervenant'];
                  $date_fr = $_POST['date'];
                  $CN = $_POST['CN'];
                  $poste = $_POST['poste'];
                  $symptome = $_POST['symptome'];
                  $magasin = $_POST['magasin'];
                  $consommable = $_POST['consommable'];

                  include('./sql.inc.php');

                  connect_sql();

                  //on ajoute dans la base de données
                  $ajout = "INSERT INTO timken VALUES ('', '$CN', '$date', '$poste', '$consommable', '$magasin', '$symptome', '$intervenant')";
                  $query = mysql_query($ajout);

                  disconnect_sql();

                  if($query){
                  echo '<script>alert(\'Votre intervention a bien été enregistrée!\')</script>';
                  echo'<meta http-equiv="refresh" content="0 url=saisiedesdonnees.php"/>';

                  } else {
                  echo'Une erreur est survenue!';
                  }
                  }

                  ?>
                  1. J'ai fait erreur pour le nom de la date egale au post en fait c'est:
                    //on renomme les variables POST
                    $intervenant = $_POST['intervenant'];
                    $date = $_POST['date'];
                    $CN = $_POST['CN'];
                    $poste = $_POST['poste'];
                    $symptome = $_POST['symptome'];
                    $magasin = $_POST['magasin'];
                    $consommable = $_POST['consommable'];
                    1. Le format de la date est jj-mm-aaaa ?

                      Si c'est le cas :

                      $tabdate = split("-", $_POST['poste']);
                      $date = $tabdate[2] ."-".$tabdate[1]."-".$tabdate[0];

                      Avec ça, ça devrait marché.

                      Thamior.
                      1. oui c'es bien ce format là
                        mais je doit l'avoir mal inserer cr ça marche pas:
                        <?php

                        if(empty($_POST['intervenant']) || empty($_POST['date']) || empty($_POST['CN']) || empty($_POST['poste']) || empty($_POST['symptome']) || empty($_POST['consommable']) || empty($_POST['magasin'])){
                        echo '<script>alert(\'Vous n\avez pas rempli tous les champs!\')</script>';
                        echo'<meta http-equiv="refresh" content="0 url=saisiedesdonnees.php"/>';
                        } else {
                        //on renomme les variables POST
                        $intervenant = $_POST['intervenant'];
                        $date = $_POST['date'];
                        $CN = $_POST['CN'];
                        $poste = $_POST['poste'];
                        $symptome = $_POST['symptome'];
                        $magasin = $_POST['magasin'];
                        $consommable = $_POST['consommable'];

                        $tabdate = split("-", $_POST['date']);
                        $date = $tabdate[2] ."-".$tabdate[1]."-".$tabdate[0];

                        include('./sql.inc.php');

                        connect_sql();

                        //on ajoute dans la base de données
                        $ajout = "INSERT INTO timken VALUES ('', '$CN', '$date', '$poste', '$consommable', '$magasin', '$symptome', '$intervenant')";
                        $query = mysql_query($ajout);

                        disconnect_sql();

                        if($query){
                        echo '<script>alert(\'Votre intervention a bien été enregistrée!\')</script>';
                        echo'<meta http-equiv="refresh" content="0 url=saisiedesdonnees.php"/>';

                        } else {
                        echo'Une erreur est survenue!';
                        }
                        }

                        ?>
                        1. Tu as affiché la requête SQL pour voir ce qu'il y avait dedans ?

                          Vérifie aussi ce qu'il y a dans date ($_POST['date'] ainsi que de dans $date).

                          Je ne vois pas l'erreur...

                          Thamior.
                          1. Je ne voit pas ce que tu veut dire par: Tu as affiché la requête SQL pour voir ce qu'il y avait dedans ?

                            et comment je peut vérifie ce qu'il y a dans date ($_POST['date'] ainsi que de dans $date).
                            1. Tu fais :

                              echo "<p>Date post : $_POST[date] </p>";
                              echo "<p>Date : $date </p>";

                              puis

                              echo "<p>SQL : $ajout </p>";

                              Avec ça tu affiches le contenu de tes variables ainsi voir ce qu'elles contiennent.

                              Ça devrait t'aider à voir ce qui ne fonctionne pas ^^.

                              Thamior.
                              1. OK, j'ai essayer .
                                voilà ce qu ça me donne:

                                Date post : 12,02,2008

                                Date : --12,02,2008

                                SQL : INSERT INTO timken VALUES ('', 'CN_02', '--12,02,2008', 'B02', 'Détecteur', 'EL12201N', 'Test', 'Julien')

                                Moi ça m'aide pas trop perso^^
                                1. Je te donne le code corrigé :

                                  Remplace :

                                  $tabdate = split("-", $_POST['date']);
                                  $date = $tabdate[2] ."-".$tabdate[1]."-".$tabdate[0];

                                  Par :

                                  $tabdate = split(",", $_POST['date']);
                                  $date = $tabdate[2] ."-".$tabdate[1]."-".$tabdate[0];

                                  Normalement ça devrait marché ;).

                                  Thamior.
                                  1. Merci beaucoup, ca marche mais c'est quoi la difference entre le tiret et la virgule?
                                    Bonne journée, c'est sympa
                                    1. En faite, la date que tu as dans $_POST['date'] est sous la forme de jj,mm,aaaa donc le split sur le - ne pouvait pas marché car il aurait fallu que la date soit sous la forme jj-mm-aaaa.

                                      J'ai juste remplacé le caractère qui sépare le jour, le mois et l'année dans le split afin de te rendre une date convertie sous la forme aaaa-mm-jj.

                                      Bonne journée,
                                      Thamior.