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. 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.
    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