Problème DateTime()/date_create()r

Résolu
Bonjour,

Voilà j'aimerai formater certaines dates venu de ma BDD en php j'ai donc regardé un peu la doc et je suis tombé sur DateTime() ou son prédécesseur date_create() (le premier est un csontructeur le second une fonction)

Donc voilà ce que j'essaye de faire :

$date=new DateTime(madate);

$date=date_create(madate);

Mais que ce soit l'un ou l'autre mon firebug me retourne des "NetworkError: 500 Internal Server Error - http://xyxyxz.com/compta/index.php" qui d'habitude et souvent dues à une erreur de synthaxe, or les ";" sont là et je ne vois pas d'autre erreurs de synthaxe.

Bref je cherche de l'aide ou une explicationa fin d'utiliser cette propriété du php.

Merci d'avance !

10 réponses

  1. Pour concaténer (et faire un echo) il faut un string, or $date était un DateTime ;-)
    Regarde bien les types, et tout ira bien :)
    La fonction format de DateTime te renvois un string, donc le type qu'il te fallait
    1. Oui effectivement en formattant a l'endroit exact ou je l'utilise ca fonctionne merci ! =D
      1. $date=new DateTime($data[$j][$conf_columns[$j]]);
        $field['output_script'] .= "<td><span class=\"field\"> ".$date->format('d-m-Y');
        $field['output_script'] .= "</span></td>";

        Essaye avec ca pour voir :)
        Sinon un echo de $data[$j][$conf_columns[$j]] pour voir

        Jérémy
        1. Oui bien sur !

          $date=new DateTime($data[$j][$conf_columns[$j]]);
          $field['output_script'] .= "<td><span class=\"field\"> ".$date;
          $field['output_script'] .= "</span></td>";
          
          


          Pour l'instant je n'ai pas remis le format puisque même ça ne fonctionne pas :x
          1. Ok donc le format ne pose pas de problème a priori.
            Peux tu nous donné un bout de code pour voir :)
            1. Elle sort en (y-m-d) et je l'a voudrais en (d-m-y)

              Euh je en met pas de cote mais je lui passe des variables du genre
              new DateTime($madate) plutot que new DateTime('madate')
              Par contre Mr YAU peu importe l'écriture du format je n'arrive pas à passer le new DateTime()
              1. OK.
                As-tu bien mis les quote autour de madate à $date = new DateTime('madate'); ?
                Une fois que tu as fais ça, utilises $date->format('Y-m-d H:i:s') au lieu de juste $date pour spécifier ton format.
                1. Car pour le coup ce n'est pas moi qui génère cette requête mais un outil de data viewer
                  1. Bonjour,

                    Pourquoi ne pas formater la date directement dans ta requête SQL avec un CONVERT ?