Jump to content

Datumsformat prüfen


Recommended Posts

Hallo zusammen,


könnte ihr mir einen Tipp geben wie ich am besten einen Datums-String auf Konsistenz prüfe?

Erste Ansätze habe ich schon:

$date="23.02.2003";
preg_match("/^[0-3][0-9].[0-1][0-9].[1-2][0-9][0-9][0-9]$/", $date);

Dieser Code prüft leider nur das Format. Ich würde aber gerne auf Konsistenz prüfen und nur Datums ab 1900 bis heute zulassen.


Besten Dank für die Hilfe


Stefan

Link to post
Share on other sites

Hi,


zerlege das doch in 3 Variablen:


- Tag

- Monat

- Jahr


und speise dann damit die Funktion mktime. Kommt eine Zahl größer 0 raus, dann ist das Ding syntaktisch korrekt. Weiterhin kannst du dann auch gleich durch eine if-Abfrage Daten kleiner 1900 ausschließen.



Grüße

Link to post
Share on other sites

Was haltet ihr davon?

$date=explode(".",$date,3);
if ($date[0]>31 or $date[0]12 or $date[1]2007) $error=2;
$date=$date[2]."-".$date[1]."-".$date[0];

Ich bin kein Profi auf dem Gebiet, darum frage ich lieber mal nach.


Grauß


Stefan

Link to post
Share on other sites

Ja, das ist mir schon bewusst und gefällt mir auch nicht sonderlich.

Ich habe mich auch schon etwas mit der Funktion mktime() gespielt aber irgendwie mach die gar nicht was ich will. Zum Beispiel akzeptiert mktime ohne weiteres das Datum 33.13.1980.


mktime(0,0,0,13,33,1980) -> 349916400 und das wiederum entspricht dem 2.2.1981


Eigentlich würde ich von der Funktion in diesem Fall einen Fehler erwarten.

Link to post
Share on other sites
  • 5 months later...

Das Thema ist zwar schon etwas älter, aber wieso macht ihr euch das Leben denn so schwer?

 

$datum = "23.02.2003";
$datum_ts = strtotime($datum);

echo checkdate(date("m",$datum_ts),date("d",$datum_ts),date("Y",$datum_ts));

 

checkdate() gibt TRUE oder FALSE zurück.


Gruß,

Christian

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...