Die Suche nach einer einfachen Antwort hat mich in den Wahnsinn getrieben. Schließlich habe ich diese Funktion erstellt, die anscheinend alle Eingaben abfängt und einen guten SQL-String liefert, der korrekt oder zumindest gültig und überprüfbar ist. Wenn es 1999-12-31 ist, ist es wahrscheinlich falsch, aber es wird keinen schlimmen Fehler in MySQL auslösen.
function MakeSQLDate($date) {
if (is_null($date)) {
//use 1999-12-31 as a valid date or as an alert
return date('Y-m-d', strtotime('1999-12-31'));
}
if (($t = strtotime($date)) === false) {
//use 1999-12-31 as a valid date or as an alert
return date('Y-m-d', strtotime('1999-12-31'));
} else {
return date('Y-m-d H:i:s', strtotime($date));
}
}