Möchte man ein deutsch formatiertes Datum: DD.MM.YYYY in eine MySQL-Tabelle mit dem Spaltentyp DATE speichern, so muss es vorher in das US-Format: YYYY-MM-DD umgewandelt werden.
Eine umständliche Möglichkeit wäre, den Datum-String über die PHP-Funktion explode() zu zerlegen und anschließend in der gewünschten Reihenfolge wieder zusammenzusetzen.
Deutlich einfacher und eleganter funktioniert es direkt in der MySQL-Query:
INSERT INTO `tabelle` SET `datum-englisch`=STR_TO_DATE(`datum-deutsch`,"%d.%m.%Y");