Hilfe ereg bei Datumsüberprüfung

dreambaser

Erfahrenes Mitglied
Hallo Leute,

Ich suche eine Möglichkeit, mit ereg() ein Datum im Stil (12.07.2005) zu überprüfen. Hat schonmal jemand sowas gemacht? Ich hab mit ereg() bisher noch nichts gemacht und die beschreibung auf php.net hilft mir auch nicht wirklich weiter.

Also was ich gerne machen möchte ist folgendes: Ich möchte überprüfen, ob vor dem ersten Punkt 2 Ziffern stehen, dann der Punkt gesetzt ist danach wieder 2 Ziffern kommen aber maximal bis 12(Monat) dann wieder ein Punkt und dann das Jahr 4 Stellig.

Kann sein, das das jetzt etwas sehr übertrieben ist, aber ich weiss nicht wie ich da anfangen sollte.

vielleicht hat von euch jemand ne Idee.

Vielen Dank
Dream
 
also ich hab mir mal mühe gemacht

PHP:
function val_date($date){
  if (ereg ("([12][0-9]|3[01]).(0[1-9]|1[0-2]).(19[0-9]{2}|2[0-9]{3})", $date)) {
     return true;
  } else {
     return false;
  }
}

if (val_date("21.12.2099")) {
  echo "hallo";
}
es werden leide keine undwirklichen daten wie z.b 30.2. abgefangen das war mi9r zuviel arbeit aber das sollte wohl reichen...
 
Schön, dass auch wirklich unwirkliche Daten wie der 31.02.2005 als korrekt erachtet werden.

Mein Vorschlag:
PHP:
<?php

	function val_date($date) {
		if( preg_match('/^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$/', trim($date), $matches) && checkdate($matches[2], $matches[1], $matches[3]) ) {
			return true;
		} else {
			return false;
		}
	}

?>
 
mackst mir mal erklären was da machst.
Und bitte vergreif dich mal net im ton du konntest sicher auch nicht gleich alles.
Aber für eine Erklärung wäre ich dir Dankbar
 
Ja, das mag ich. Kein Vorschlag macht nichts anderes, als die drei Bestandteile der Schreibweise eines Kalenderdatums herauszufiltern und diese der checkdate()-Funktion zu übergeben, welche ein Gregorianisches Datum auf Gültigkeit überprüft.
 
Zurück