Да вполне приличный вариант! С безопасностью всё нормально.
Я бы немного переделал вот так:
if(false !== $tm = strtotime($date)) {
$date = date('Y-m-d H:i:s', $tm);
print 'date ok';
}
В таком случае можно принимать дату в разных форматах, в MySQL всё равно пойдет в правильном виде.