php erkennt und konvertiert Daten aus einer Zeichenkette

8

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

erhält

Beispiel:

$date = DateExtract($sting1); // output: 2003-03-16

$date = DateExtract($sting2); // output: ['2006-05-10','2008-07-10']

    
Adrian Covaci 16.03.2016, 11:27
quelle

3 Antworten

3

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.

%Vor%

Ausgabe: -

%Vor%

Aktualisierungen

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 wie January auch.

Code -

%Vor%

Ergebnis -

%Vor%

So können Sie hier das vollständige Datumsformular abrufen und in das Standard-Datumsformat konvertieren.

Demo hier

Rahul Dambare

    
Rahul Dambare 16.03.2016 11:47
quelle
1

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.

    
Utkanos 16.03.2016 12:00
quelle
1

Zuerst müssen Sie alle Teile des Datums aus der Zeichenfolge separat extrahieren.

RegEx-Demo

Erster Ansatz:

%Vor%

PHP-Demo

Zweiter Ansatz:

%Vor%

PHP-Demo

    
Shafizadeh 16.03.2016 12:12
quelle

Tags und Links