Wie von anderen angemerkt, wenn es sich hierbei um ein Datumsfeld aus einer Datenbank handelt, sollte es in einem klar definierten Format kommen, sodass Sie ein einfaches Regex verwenden können, wie das von toolkit.
Aber das hat den Nachteil, dass es ungültige Daten akzeptiert, wie z.B. 2009-02-30. Wenn Sie jedoch Daten verarbeiten, die es erfolgreich in ein datumsbasiertes Feld in einer DB geschafft haben, sollten Sie auf der sicheren Seite sein.
Ein robusterer Ansatz wäre die Verwendung eines der vielen Datum/Uhrzeit-Module von CPAN. Wahrscheinlich wäre Date::Manip eine gute Wahl, insbesondere die Funktion ParseDate().
http://metacpan.org/pod/Date::Manip
0 Stimmen
Wenn die Quelle dieser Daten Ihre Datenbank ist, warum müssen Sie dann das Format überprüfen? Nur aus Neugier.
0 Stimmen
Besser in welcher Hinsicht? Machen Ihnen nicht vorhandene Daten Sorgen? Oder möchten Sie andere Datumsformate zulassen?
0 Stimmen
Was versuchst du eigentlich zu tun? Die Leute haben dir einige vollkommen gültige reguläre Ausdrücke dafür geliefert. Wenn du nur das Format überprüfen möchtest, sind diese im Grunde in Ordnung. Um die Richtigkeit des Datums zu überprüfen, musst du etwas mehr tun. Wenn du tatsächlich die Gültigkeit des Datums überprüfen möchtest, noch mehr. Können wir sicher davon ausgehen, dass die Datenbank dies nicht in einem Datumsfeld speichert und die Daten möglicherweise ungültig sind?
1 Stimmen
Ja, es macht keinen Sinn, Daten aus der Datenbank zu validieren, es sei denn, sie wurden als Zeichenfolgen gespeichert - aber warum sollte das der Fall sein ?! Wenn Sie sie auseinandernehmen möchten, ist es eine gute Idee, herauszufinden, in welchem Format Ihre Datenbank sie ausgibt, und einen Regex-Code dafür zu schreiben.