Pour insérer dans les champs datetime mySQL, la chaîne doit être dans un certain format pour que mySQL puisse la comprendre. Le problème est que php a ses propres pensées et idées sur la façon dont les dates sont représentées. Lorsque vous traitez des dates entre les deux, vous devez traduire.
Si en php vous avez affaire à un objet temporel, vous pouvez le faire pour obtenir une chaîne que mySQL aimera :
$mysqlDateString = date('Y-m-d H:i:s', $phpdate);
ou si vous avez affaire à une date de chaîne, vous pouvez faire ceci :
$mysqlDateString = date('Y-m-d H:i:s', $strtotime("08/09/2009"));
Si vous obtenez une chaîne datetime de mySQL, vous pouvez le faire pour le traiter en PHP :
$phpTime = strtotime($mysqlDateString);
Je viens de rencontrer ce problème moi-même, alors j'espère que cela fonctionnera également pour vous.