Enregistrer date

Résolu/Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié par Sinistrus le 8/10/2013 à 11:58
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 8 oct. 2013 à 12:31
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
8 oct. 2013 à 11:54
Salut,

qu'est ce que te retourne $Date ?
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
8 oct. 2013 à 11:55
$Date enregistre dans ma base :
1970-01-01
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
8 oct. 2013 à 12:03
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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
8 oct. 2013 à 12:04
Si je comprends bien, strtotime transforme la date d/m/Y ?!
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
8 oct. 2013 à 12:06
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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
8 oct. 2013 à 12:28
$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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
8 oct. 2013 à 12:31
de rien ;)
0