Les dates : j'arrive pas à enrégistrer dans ma BD - SQL/NoSQL - Programmation
Marsh Posté le 08-07-2013 à 11:00:06
$dt_effet= date('d-m-Y');
-> vue le format, m'étonnes pas que ça marche pas
Marsh Posté le 08-07-2013 à 11:03:28
Merci pour la réponse, j'ai mis ce format parce que quand je regarde dans la BD, je trouve le même format.
DOnc, tu penses que je devrais mettre ce format : 00/00/0000 ???
Marsh Posté le 08-07-2013 à 11:11:57
rufo a écrit : $dt_effet= date('d-m-Y'); |
Merci pour la réponse, j'ai mis ce format parce que quand je regarde dans la BD, je trouve le même format.
Donc, pourriez-vous me conseiller le bon format ???
Marsh Posté le 08-07-2013 à 11:37:03
Je suis très étonné car les champs de type date en BD ont par défaut le format YYYY-MM-DD.
Et dans ton code, on trouve cette ligne : $dt_effet = date("$y-$m-01" );
Quoi qu'il en soit, y'a une incohérence dans les formatas de date dans ton code
http://dev.mysql.com/doc/refman/5.1/en/datetime.html
Citation : The DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'. |
Marsh Posté le 08-07-2013 à 11:47:53
Là je vois plus claire , je pense que que ça va marcher avec ce format.
Je reviens vite vers vous.
Thanks for all.
Marsh Posté le 08-07-2013 à 12:25:03
Comme promis je reviens vers vous, et très content même ^^
ça marche nickel, j'ai fait ceci : $dt_effet= date('Ymd');
En effet, j'ai juste enlevé les " - " , comme vous pouvez le constater.
J'ai réussi grâce à vous .. alors grand merci !!!
Marsh Posté le 08-07-2013 à 13:03:55
C'est pas trop conseillé d'enlever les "-" Si tu veux afficher une date en fr (jj/mm/aaaa), avec le format YYYY-mm-dd, suffit de faire :
date("d/m/Y", strtotime($DateFormatEN));
Marsh Posté le 08-07-2013 à 10:51:37
Bonjour,
Après validation de mon formulaire, je récupère le mois et l'année sélectionnés par l'utilisateur (champ Select), puis je crée une date à partir de ces données.
Si l'utilisateur n'a pas selectionné une date, je récupère par défaut la date du jour.
Et quand je mets un echo juste après, j'ai ma date qui est bien affiché au bon format (exemple : 2013-08-07).
Sauf que quand j'enrégistre les données dans ma base, la date n'est pas enregistrée (je me retrouve avec 0000-00-00).
Voici mon code :
$dt_effet= date('d-m-Y'); //je récupère la date du jour (par défaut)
if ( isset ($_POST ['new_dt_contrat']) ){ //je teste si l'utilisateur a choisi une date
$m=$_POST ['dt_mois'];
$y=$_POST ['dt_annee'];
$dt_effet = date("$y-$m-01" ); //je crée une date avec le mois et l'année choisi par l'utilisateur
}
//echo $dt_effet ; //m'affiche bien la date d'effet du contrat.
...
// Insertion à la BD
$sql =new mySql ("INSERT INTO `matable`
(`id`, `numcontrat`, `name`, `firstname`, `dt`, `dt_effet`)
VALUES (NULL, $num_contrat, $name, $firstname, NOW (), $dt_effet) " ); //Tout est OK sauf la date d'effet du contrat ( $dt_effet ).
Je vous remercie d'avance pour votre aide.
---------------
signé babs...peace.