Enregistrer date

Résolu
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   -
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. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
     
    Salut,

    qu'est ce que te retourne $Date ?
    0
  2. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    $Date enregistre dans ma base :
    1970-01-01
    0
    1. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
       
      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.
      0
    2. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
       
      Si je comprends bien, strtotime transforme la date d/m/Y ?!
      0
    3. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
       
      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
      0
  3. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    $DateDebut = DateTime::createFromFormat("d/m/Y", $_POST["DateDebut"], new DateTimeZone('Europe/Warsaw'));
    $DateDebut = date_format($DateDebut, "Y-m-d");

    Ca fonctionne ^^ Merci encore !
    0
    1. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
       
      de rien ;)
      0