Datumsformat ueberpruefen?

Suchfunktion

Erfahrenes Mitglied
Aloah :)

Habe leider nix passendes gefunden also poste ich direkt mal hier rein:

Wie kann ich ueberpruefen ob der Wert in einem String ein korrektes Datumsformat besitzt?

Also wie ueberpruefe ich ob der Stringinhalt das Format JJJJ-MM-TT besitzt?
(Also den MySQL-Standart)

Danke leutz :)

(Bin auch mit nem einfachen link zu irgendeinem Thread zufrieden, nur habe ich selber leider nix passendes gefunden)
 
Ich habe Google mal mit Datumsformat php preg_match mysql gefüttert.
Dabei bin ich zu einem Thread gekommen.
Das Format ist zwar anders herum, aber das anzupassen sollte kein Problem darstellen.

Gruß hpvw
 
Servus!

Mit ereg() oder eregi() kannst Du in nem String nach vorhanden Zeichen/Zeichenketten suchen.
Les es Dir einfach mal in php.net durch...
und was für ein Glück, zufälligerweise ist genau das was Du suchst des Example1 ;)

PHP: ereg - Manual

vg Clemens
 
Hi!

Naja ein Problem gibt es:
Wenn ich 2005-13-13 eingebe, wird es als korrekt angesehen und akzeptiert obwohl das garnicht sein duerfte.

Was kann man da machen?
(Habe den Source 1zu1 uebernommen)

Hier nochmal der Code:
PHP:
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
  echo "$regs[3].$regs[2].$regs[1]";
} else {
  echo "Ungültiges Datumsformat: $date";
};

Es sollen also nur korrekte Eingaben im Format JJJJ-MM-TT eingegeben werden koennen.
(Also z.B. 2005-12-31 usw.)
 
Zuletzt bearbeitet:
Servus,
ich würd einfach noch ne if Abfrage da rein machen, die den Monat auf kleiner 13 und den Tag auf kleiner 31 überpüft... die Null ist da ja auch noch dabei seh ich grad... also noch Monat und Tag auf auf grösser 0 prüfen.

vg Clemens
 
Vielleicht so in der Art?
Code:
([0-9]{4})-(([0]?[0-9]{1})|([1]{1}[0-2]{1}))-(([0-2]?[0-9]{1})|(30)|(31))
Ob 30 und 31 bei dem speziellen Datum zugelassen sind müsstest Du wahrscheinlich extra prüfen. Da sehe ich keine Idee für einen regulären Ausdruck.
 

Neue Beiträge

Zurück