Enregistrer date

Résolu
Bonjour à tous !

Dans une page php je met la date au format 08/10/2013
Je récupère la valeur comme ceci:
$Date = strftime("%Y-%m-%d",strtotime($_POST["Date"]));
Mais celui-ci m'enregistre dans ma table
1970-01-01

Pouvez-vous me donner un coup de main svp ?

3 réponses

  1. $Date enregistre dans ma base :
    1970-01-01
    1. Contributeur
      ce qui ne répond pas forcément à ma question ;)

      Si tu passes une date avec des slash à strtotime, il va déduire que la date est au format m/d/Y

      Pour ma part, j'utilise une fonction qui me transforme ma date au format d/m/Y en Y-m-d et inversement.
      Il y a peut être moyen de faire mieux, mais au moins je suis sûr que ça marche à tous les coups.
    2. Si je comprends bien, strtotime transforme la date d/m/Y ?!
    3. Contributeur
      si tu passes à strtotime une date avec des slash, il va déduire que le format est américain et donc m/d/Y (ce qui est faux dans ton cas), et quand on lui passe une date avec des tirets, il va déduire que la date est au format européen : d-m-Y

      tu peux utiliser la fonction suivante sinon : https://www.php.net/manual/fr/datetime.createfromformat.php
  2. $DateDebut = DateTime::createFromFormat("d/m/Y", $_POST["DateDebut"], new DateTimeZone('Europe/Warsaw'));
    $DateDebut = date_format($DateDebut, "Y-m-d");

    Ca fonctionne ^^ Merci encore !
    1. Contributeur
      de rien ;)