Para inserir nos campos de data e hora do mySQL, a string deve estar em um determinado formato para que o mySQL a entenda. O problema é que o php tem seus próprios pensamentos e ideias sobre como as datas são representadas. Ao lidar com datas entre os dois você tem que traduzir.
Se em php você está lidando com um objeto de tempo, você pode fazer isso para obter uma string que o mySQL gostará:
$mysqlDateString = date('Y-m-d H:i:s', $phpdate);
ou se você estiver lidando com uma data de string, você pode fazer isso:
$mysqlDateString = date('Y-m-d H:i:s', $strtotime("08/09/2009"));
Se você obtiver uma string de data e hora do mySQL, poderá fazer isso para lidar com isso em PHP:
$phpTime = strtotime($mysqlDateString);
Acabei de me deparar com esse problema, então espero que isso funcione para você também.