Enregistrer date

Résolu
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
ThEBiShOp Messages postés 8411 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

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut,

qu'est ce que te retourne $Date ?
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
$Date enregistre dans ma base :
1970-01-01
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
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
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
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
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
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
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
de rien ;)
0