Erstellen den regulären Datumsausdruck MM/DD/YYYY in PHP

Subodh Poudel 22 Januar 2022
Erstellen den regulären Datumsausdruck MM/DD/YYYY in PHP

Dieses Tutorial zeigt, wie Sie in PHP einen regulären Ausdruck für das Datumsformat mm/dd/yyyy erstellen.

Erstellen Sie den regulären Datumsausdruck MM/DD/YY in PHP

Wir können den regulären Ausdruck verwenden, um die Benutzereingabe gemäß den im Ausdruck angewendeten Regeln zu validieren. Wir können alle Eingaben mit dem regulären Ausdruck validieren, und wir können sogar das Datumsformat mm/dd/yyyy mit dem regulären Ausdruck validieren.

Wir können einen regulären Ausdruck erstellen und in einer Variablen speichern. Wir verwenden die Funktion preg_match(), um zufällige Eingaben im Datumsformat mit dem regulären Ausdruck zu testen.

Ein Regex-Muster für das Datumsformat mm/dd/yyyy ist unten abgebildet. Wir werden es ausführlich besprechen.

~(0[1-9]|1[012])[-/](0[1-9]|[12][0-9]|3[01])[-/](19|20)\d\d~

Ein Regex-Muster sollte immer ein korrektes Trennzeichen haben. Hier ist das Symbol ~ das Trennzeichen, das das Muster umgibt.

Als nächstes müssen wir das Format für die Monate in mm/dd/yyyy schreiben.

Der Monat wird von 01-12 im Format dargestellt. So kann die erste Ziffer des Monats entweder 0 oder 1 sein, also schreiben wir 0[1-9] für die Monate beginnend mit 01-09. Die 1-9 innerhalb der Klammer bezeichnet die Zahl, die hinter 0 steht.

Ebenso können wir für den Monat nur 10, 11 und 12 schreiben, beginnend mit 1. Deshalb haben wir 012 innerhalb der Klammern für 1 als 1[012] geschrieben.

Wir verwenden das | Symbol um ein logisches ODER zu erreichen. Also verwenden wir es, um die Regeln als (0[1-9]|1[012]) zu trennen.

Schließlich schließen wir das Muster in Klammern ein, um das Ende eines Abschnitts anzuzeigen.

Als nächstes müssen wir die Regel für die Trennzeichen im Format mm/dd/yyyy setzen. Das obige Muster erlaubt die Trennzeichen der Symbole -, / und ..

Jetzt schreiben wir das Muster tagelang. Tage sind 1-30, also können die Tage 01-09 als 0[1-9] geschrieben werden, 10-29 können als 12[0-9] geschrieben werden und die Tage 30-31 kann als 3[01] geschrieben werden.

Dieselbe Regel verwenden wir für Trennzeichen nach den Tagen im Format mm/dd/yyyy.

Wir haben 19|20 als die ersten beiden Ziffern für das Jahr geschrieben, d.h. das Jahr kann nur mit 19 und 20 beginnen. Wir haben das Muster \d\d nach 19|20 verwendet, um zwei beliebige Ziffern nach 19 oder 20 zu bezeichnen.

So funktioniert der obige reguläre Ausdruck. Wir können jetzt einige Testdatumsformate mit dem obigen regulären Ausdruck überprüfen.

Erstellen Sie dazu eine Variable $reg und speichern Sie die oben geschriebene Regex darin. Als nächstes erstellen Sie ein Array $dates und speichern diese zufälligen Datumsformate.

['03/22/2021', '22/22/2021', '03\22\2021', '03-22-2021', '03/22/1865']

Verwenden Sie dann die foreach-Schleife, um die Variable $dates als $date zu durchlaufen. Vergleichen Sie die Variable $date mit der Variable $reg mit der Funktion preg_match().

Auf diese Weise können wir überprüfen, ob die Testeingaben dem Regex-Muster des Formats mm/dd/yyyy entsprechen.

Beispielcode:

$reg = '~(0[1-9]|1[012])[-/](0[1-9]|[12][0-9]|3[01])[-/](19|20)\d\d~';

$dates =['03/22/2021', '22/22/2021', '03\22\2021', '03-22-2021', '03/22/1865'] ;
foreach($dates as $date){
 if(!preg_match($reg, $date)) {
 echo 'the date format '.$date.' is incorrect'."<br>"; 
 } else{
 echo 'the date format '.$date.' is correct'."<br>";
 } 
}

Ausgabe:

the date format 03/22/2021 is correct
the date format 22/22/2021 is incorrect
the date format 03\22\2021 is incorrect
the date format 03-22-2021 is correct
the date format 03/22/1865 is incorrect

Hier folgt das erste Format allen Regeln. Das zweite Format ist falsch, da der Monat nicht 22 sein darf.

Das dritte ist falsch, weil wir das Trennzeichen \ nicht angegeben haben. Wir haben das Trennzeichen - angegeben, damit das vierte Datum korrekt ist. Das Jahr ist das 1800 im letzten Jahr, also ist es falsch.

Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Verwandter Artikel - PHP Date

Verwandter Artikel - PHP Regex