Mein Muster stimmt nicht mit einem ISO-Stildatum überein: Warum?
Wenn Sie versuchen, ein ISO-Stildatum mithilfe eines regulären Ausdrucks zu validieren, Möglicherweise treten Probleme auf, bei denen das Muster nicht richtig übereinstimmt. Dies ist häufig auf das Vorhandensein von „/“-Zeichen im regulären Ausdruck zurückzuführen, was in PHP notwendig ist.
Das Problem
Das Problem tritt auf, wenn ein regulärer Ausdruck verwendet wird Ausdruck zur Übereinstimmung mit einem Datum im Format „JJJJ-MM-TT HH:MM:SS“. Wenn die Zeichen „/“ im regulären Ausdruck vorhanden sind, gibt PHP einen Fehler aus, da erwartet wird, dass das Zeichen „/“ mit „“ maskiert wird.
Die Lösung – Verwendung der DateTime-Klasse
Anstatt einen komplexen regulären Ausdruck zu verwenden, sollten Sie die Verwendung der DateTime-Klasse in PHP in Betracht ziehen. Diese Klasse bietet eine einfache und robuste Möglichkeit, Datumsangaben zu validieren. Der folgende Code zeigt, wie die DateTime-Klasse zur Datumsvalidierung verwendet wird:
function validateDate($date, $format = 'Y-m-d H:i:s') { $d = DateTime::createFromFormat($format, $date); return $d && $d->format($format) == $date; }
Durch Angabe des erwarteten Formats kann die DateTime-Klasse Datumsangaben genau validieren und zuverlässige Ergebnisse zurückgeben.
Fazit
Für die Datumsvalidierung in PHP wird die Verwendung der DateTime-Klasse empfohlen, da es sich um eine sichere, praktische und erweiterbare Methode handelt Arbeiten mit Datum und Uhrzeit.
Das obige ist der detaillierte Inhalt vonWarum stimmt mein Regex nicht mit den ISO-Daten in PHP überein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!