(Hallo|Hi(ho)|Tag) Auge,
Kleiner Hinweis: Es gibt die Funktion checkdate().
Schön, dass das mal jemand sagt. Die Funktion scheint ja in der "Öffentlichkeit" recht unbekannt zu sein, ...
Und dabei steht sie in der Liste der Datums-und-Zeitfunktionen an oberster Stelle -- ist also kaum zu übersehen. Aber manchmal sieht man eben den Wald vor lauter Bäumen nicht. ;-)
dabei reicht sie für das Tagesgeschäft [1] vollkommen aus.
Hilfreich ist sie ja unbestritten, aber __vollkommen__ ausreichen tut sie nicht.
[1] Geburtstag eines Benutzers, Bestell- oder Rechnungsdatum ...
Sollten solche Eingaben nicht auf Plausibilität geprüft werden? Wenn zum Beispiel heute (2008-04-04) jemand ein Geburts- oder Rechnungsdatum eintippt, das im Jahr 2020 liegt, stört das checkdate() nicht im Geringsten.
Ähnliches gilt für den umgekehrten Fall: Stell dir vor, dein Skript nimmt Hotelbuchungen entgegen. Die sollten doch frühestens auf den heutigen (oder morgigen) Tag fallen. checkdate() hätte kein Problem mit einem Buchungsdatum, das in der Vergangenheit liegt ...
Alleine reicht checkdate() also nicht aus. Man wird nicht umhinkommen, eine Funktion drumherum zu bauen, die offensichtliche Eingabefehler abfängt.
... etc. pp. vor der Einführung des greg. Kalenders sollten recht unwahrscheinlich sein. Sollte man zumindest annehmen können.
Im Prinzip ja, aber in der Türkei oder in Russland beispielsweise wurde der gregorianische Kalender erst im frühen 20. Jahrhundert eingeführt. Und Geburtsdaten um 1916 oder 1917 kommen schon noch vor -- es muss ja nicht immer das eigene Geburtsdatum sein, was eingegeben wird. Es kommt halt darauf an, welche Art von Datum so ein Programm entgegennimmt.
MffG
EisFuX