Ich habe mich gefragt, ob ich irgendwie date
in einer Zeichenkette erkennen und in eine standard date format
umwandeln könnte.
Betrachten wir die folgenden Eingabezeichenfolgen:
Company registered on 16 March 2003
oder
Activity between 10 May 2006 an 10 July 2008 - no changes.
Nun möchte ich, dass eine PHP-Funktion auf die Strings angewendet wird und die Daten als YYYY-mm-dd
Beispiel:
$date = DateExtract($sting1); // output: 2003-03-16
$date = DateExtract($sting2); // output: ['2006-05-10','2008-07-10']
Um die erste zweistellige Zahl zu finden Date
Regexp wäre - (?<![0-9])[0-9]{2}(?![0-9])
Dies kann auch auf vier Ziffern für Year
angewendet werden und für Monat können Sie fest codierten string search
Code verwenden.
Ausgabe: -
%Vor%Um das vollständige Datum in der Zeichenfolge zu finden, können Sie dies verwenden -
Es funktioniert für kurzen Code für Monat wie
Jan
und vervollständigt Namen wieJanuary
auch.
Code -
%Vor%Ergebnis -
%Vor%So können Sie hier das vollständige Datumsformular abrufen und in das Standard-Datumsformat konvertieren.
Rahul Dambare
Tricky. Ein Ansatz könnte sein, zu begründen, dass Datumsangaben immer nach bestimmten grammatikalischen Wörtern erscheinen, wie in Ihren Beispielen gezeigt, z. "between", "on" usw. Unter Verwendung solcher Wörter als ein anfänglicher Anker würden wir dann zusammenpassen, bis wir das finden, von dem wir vernünftigerweise annehmen können, dass es das Ende der Datumszeichenkette ist. Folgendes habe ich zusammengehackt:
%Vor%Natürlich mache ich bestimmte Annahmen über Ihre Datumsformate, und Sie müssen möglicherweise die REGEX optimieren, aber es funktioniert irgendwie.
Zuerst müssen Sie alle Teile des Datums aus der Zeichenfolge separat extrahieren.
Erster Ansatz:
%Vor%Zweiter Ansatz:
%Vor%