Salut,
Dans ma base MySQL, j'ai un champs de type DATE. J'essaie d'enregistrer une valeur avec doctrine en faisant
$monObjet->setDateDebut( time() );
mais dans la base je retrouve 0000-00-00.
Pourquoi ?
Merci d'avance
Salut,
Dans ma base MySQL, j'ai un champs de type DATE. J'essaie d'enregistrer une valeur avec doctrine en faisant
$monObjet->setDateDebut( time() );
mais dans la base je retrouve 0000-00-00.
Pourquoi ?
Merci d'avance
Bonjour,
Quand tu regardes sur http://php.net/time, tu vois que la fonction time() te retourne un int, à savoir un timestamp. Dans ta base de données, tu as déclaré un type date et non timestamp et du coup, la conversion passe mal. Deux solutions :
- soit tu changes en BDD et tu passes en timestamp
- soit dans ton code, tu crées une chaine de caractères qui respecte le format yyyy-MM-dd
Pour convertir en date, je n'ai plus le détail exact en tête mais je pencherais pour ça :
À vérifier avec la doc de php.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $monObjet->setDateDebut(date(('Y-m-d'), time()));
Merci pour ta réponse, ce code fonctionne très bien. Mais je précise ma question : est-ce que c'est là la bonne manière de traiter une date avec Symfony/Doctrine/MySQL ?
Là par contre, je ne pourrai pas t'aider, ne connaissant Symfony que de nom (et pas du tout Doctrine).
N'oublie de mettre le sujet en Résolu si ton problème est bien résolu![]()
Tu as le choix entre date et timestamp avec symfony/doctrine.
Les outils (widget et validator) gèrent les deux. Tous dépend donc des autres traitements que tu souhaites leur faire subir. Il n'y a pas de solution meilleur que l'autre.
Partager