PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: Eingabeprüfung von Datumsangaben


ooAlbert
2007-04-03, 17:06:39
Hallo,

gibt es für PHP eine fertige funktion(befehl) der einen string abprüft ob es ein datum ist?

denn ich brauch eine eingabe prüfung damit keine sinnlosen werte in der datenbank landen, wäre halt nur praktischer als jedes zeichen für sich zu prüfen und dann noch ob es überhaupt ein sinnvolels datum wäre.

mfg

Tommes
2007-04-03, 17:12:34
http://de.php.net/manual/de/function.strtotime.php

http://de.php.net/manual/de/function.checkdate.php

http://de.php.net/manual/de/ref.datetime.php

ooAlbert
2007-04-19, 08:26:09
ich nochmal :)

ich hab folgendes konstrukt gewählt:


$datum1 = $_POST[datum1];
$datum2 = $_POST[datum2];

$datum1_split = explode(".", $datum1);
$datum2_split = explode(".", $datum2);

if (checkdate($datum1_split[1], $datum1_split[0], $datum1_split[2]) == false)
{
// gib eine Fehlermeldung aus
}


Scheinbar funktioniert das auch... mich würd jetzt noch interessieren, ob man einen zusatzparameter setzen kann oder mit hilfe eines anderen befehles, das auch ein fehler erscheint wenn 1.1.01 anstatt 01.01.01 eingegeben wird? Oder gibt es sowas wie eine "autovervollständigung die die führenden nullen ergänzt?

Denn ich wollt es eigentlich umgehen erst die ganzen zahlen zusätzlich zu prüfen.

Marscel
2007-04-19, 14:38:48
Wie willst du das Datum denn haben? Du kannst alle Parameter, die du hast mittels mktime() (http://de2.php.net/manual/de/function.mktime.php) in einen PHP timestamp packen und ggf. mit date() wieder zurückformatieren, dann werden führende Nullen ergänzt, soweit ich weiß.

creave
2007-04-19, 17:41:20
Mit Regex kannst du auch problemlos eigene Masken erstellen.

Kinman
2007-04-19, 18:49:04
$month = 4;
$year = 2007;
$day = 5;

$month = substr($month + 100, 1, 2);
$day = substr($day + 100, 1, 2);

echo($day . '.' $month . '.' . $year); // ==> 05.04.2007


Net so schön wie über Timestamp und date() aber es funzt

mfg Kinman