Per inserire nei campi mySQL datetime, la stringa deve essere in un determinato formato affinché MySQL la comprenda. Il problema è che php ha i suoi pensieri e le sue idee su come vengono rappresentate le date. Quando hai a che fare con le date tra i due devi tradurre.
Se in php hai a che fare con un oggetto time puoi farlo per ottenere una stringa che piacerà a mySQL:
$mysqlDateString = date('Y-m-d H:i:s', $phpdate);
oppure se hai a che fare con una data stringa puoi farlo:
$mysqlDateString = date('Y-m-d H:i:s', $strtotime("08/09/2009"));
Se ottieni una stringa datetime da MySQL puoi farlo per gestirla in PHP:
$phpTime = strtotime($mysqlDateString);
Mi sono appena imbattuto in questo problema, quindi spero che funzioni anche per te.