Tach!
Gegenvorschlag:
Einfach strtotime() nehmen.
function test($input)
{
echo str_pad($input, 12), date('Y-m-d H:i:s', strtotime($input)), "\n";
}
1969-12-31 16:00:00
1557223130 1969-12-31 16:00:00
7. Mai 2019 1969-12-31 16:00:00
7.5.9 2019-05-07 07:05:09
7.5.19 2019-05-07 07:05:19
07.05.19 2019-05-07 07:05:19
07.05.219 1969-12-31 16:00:00
07.05.2019 2019-05-07 00:00:00
5/7/9 2009-05-07 00:00:00
05/07/19 2019-05-07 00:00:00
05/07/219 0219-05-07 00:00:00
5/7/2019 2019-05-07 00:00:00
05/07/2019 2019-05-07 00:00:00
19-05-7 2019-05-07 00:00:00
19-5-7 2019-05-07 00:00:00
2019-5-07 2019-05-07 00:00:00
9-05-07 2009-05-07 00:00:00
19-05-07 2019-05-07 00:00:00
219-05-07 0219-05-07 00:00:00
2019-05-07 2019-05-07 00:00:00
Wenn man keinen Wert vorliegen hat, dann time() und wenn man bereits einen Timestamp von time() vorliegen hat, braucht man den ja auch nicht mehr zu parsen. Deswegen sind die ersten beiden Tests nicht viel wert. Um einen Wert mit Monatsnamen zu parsen, muss man vermutlich locale richtig einstellen.
dedlfix.