phpbar.de logo

Mailinglisten-Archive

[php] checkdate geht nicht

[php] checkdate geht nicht

Guido Haeger GH-lists_(at)_ecora.de
Mon, 19 Jun 2000 08:41:17 +0200


Tim Hildebrandt schrieb

> $DateArray = split("\.", $formularfeld);
> $vardat = date("Y-m-d",
> mktime(0,0,0,$DateArray[1],$DateArray[0],$DateArray[2]));
>
> Bei Jahresangaben unterhalb von 1970 kommt ein allgemeiner Fehler.
> Warum und wie kann man das umgehen?

Mit mktime() generierst Du einen UNIX-Timestamp. Dieser gibt bekanntlich
die Anzahl der Sekunden seit dem 01.01.1970 an. Es macht allerdings auch
wenig Sinn, für die Formatierung eines Datums erst einen UNIX-Timestamp
zu generieren, um diesen dann wieder in ein formatiertes Datum
zurückzuverwandeln.

Da checkdate im allgemeinen funktioniert, solltest Du eventuell Dein
System überprüfen. Ansonsten validiere das Datum soweit wie möglich mit
einem Regulären Ausdruck. Die gewünschte Formatierung bekommst Du dann
auch ohne date+mktime realisieren.

// Hier steht die Validierung
$DateArray = explode(".", $formularfeld);
$FDate = sprintf("%04d-%02d-%02d", $DateArray[2], $DateArray[1],
$DateArray[0] );

Guido Haeger



php::bar PHP Wiki   -   Listenarchive