Récupérer une date dans mysql jj/mm/aaaa

Résolu
Bonjour,
Je suis totalement débutant PHP MYSQL
J'ai une base de données MYSQL d'ou je récupère les données pour les afficher de la façon suivante

<?php echo '<p><strong>' . $donnees['nom'] . '</strong> prénom :<br />' . $donnees['prenom'] . '<br/>' . 'né(e) le :' . date('d/m/Y', $donnees['date_naissance']). </p>';?>

Le Nom et prenom c'est bon mais la date_naissance, impossible avec l'erreur:
Notice: A non well formed numeric value encountered in C:\Program Files\EasyPHP 2.0b1\www\minitest.php on line 65

Je saisi ma date_naissance au format AAAA-MM-DD (puisqu'il ne comprend rien d'autre) l'envoi en base mysql et veut la récupérer au format jour/mois/année
2ème Question comment envoyer une date à mysql au format jour/mois/année et est ce possible
Merci
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Salut,

    il faut décomposer la date lue dans mysql et la recomposer dans le format que tu veux:

    //on fait un tableau en décomposant par rapport à -
    $array_date_mysql=explode("-",$donnees['date_naissance']);
    //on met au format voulu
    $date_fr=$array_date_mysql[2]."/".$array_date_mysql[1]."/".$array_date_mysql[0];
    
    //affichage:
    <?php 
    echo "<p><strong>".$donnees['nom']."</strong> prénom :<br />".$donnees['prenom']."<br/> né(e) le :".$date_fr."</p>";
    
    ?> 
    
    


    et attention: si tu commences et fini ta chaine echo par des ' tu ne peux pas en mettre à l'intérieur $donnees['nom'] par exemple

    soit celle de l'intérieur tu les échappes par des \ comme ça \'

    soit tu mets des " en début et fin de chaine et pour concaténer et tu peux alors mettre des ' entre

    comme je t'ai fait ci dessus

    Connais tu le site:

    https://openclassrooms.com/fr/

    @lain
    3
    1. Salut,
      En fait je plante maintenant sur la ligne:
      $array_date_mysql=explode("-",$donnees['date_naissance']);
      ma date 1946-01-02 (c'est au bon format date)
      avec le message
      Parse error: parse error, unexpected T_VARIABLE in C:\Program Files\EasyPHP 2.0b1\www\minitest.php on line 64
      Sinon je viens de terminer mon initaition avec le site du zéro FABULEUX.
      Merci de ton aide
      0
    2. @Andre13Bonjour,

      c'est la variable $donnees['date_naissance'] qui est en cause, as tu bien mis cette ligne après avoir extrait les infos de la base (après $donnees=mysql_fetch......) ?

      Est ce que le champ date_naissance est bien libellé ainsi dans ta table ?

      @lain
      0
    3. @Alain_42c'est la variable $donnees['date_naissance'] qui est en cause,effectivement
      j'ai bien extrait les infos de la base (après $donnees=mysql_fetch......) ? puis j'ai fermé php ?>
      cela donne
      $donnees = mysql_fetch_array($reponse)
      ?>

      <?php
      $chaine_date = $donnees['date_naissance'];// inutile on peut l'écrire en direct voir ci dessous
      $array_chaine = explode('-', $donnees['date_naissance']);
      Merci de ton aide
      0
  2. Pour envoyer une date, tu définie le champ en Date et tu l'envoie comme un simple varchar.
    0
    1. Bonjour,
      J'ai défini mon champ en date dans la base mysql que je charge avec une boite option"text" mais il exige le format AAAA-MM-DD si je charge DD/MM/AAAA j'obtient une date que est 0000-00-00.
      Comment envoyer au format VARCHAR ()quand le champ est "DATE" je ne vois pas ?
      merci
      0
  3. Contributeur
    Salut,

    Le code Alain_42 marche, mais il y a "mieux" :

    Date_format
    Fonction sur les dates

    Il me semble que tu peux ainsi faire la conversion dans les deux sens (vers et de la base)

    @Bientôt
    0