Hallo Dennis,
Beispiel: 04.05.06
Wie willst du erkennen, ob das JJ.MM.DD oder DD.MM.JJ ist?
Meine Funktion macht da den 4 Mai 2006 draus. Ein Hinweis wie das Datum eingegeben werden sollte, sollte natürlich schon darstehen, um uneindeutige Fälle richtig zu erkennen.
Es bedarf keiner eigenen Erklärung für DAU's wie man das formatieren muss und
Mit welchem Format DAUs besser zurecht kommen, weiß ich nicht, das müsste ich ausprobieren.
beim nächsten Laden der Seite (z.B. ein Benutzerprofil) ist natürlich das alte ausgewählte Datum wieder vorselektriert.
_davon_ gehe ich sowieso aus :-)
ich habe wesentlich schneller z.B. 4r5r06 eingegeben (was meine Funktion zu 04.05.2006 macht) als mir in einem select-Feld die richtigen Werte zusammengefummelt.
Wenn es nur für dich ist, oder wenn viele Daten eingegeben werden sollen, hast du mit deiner Begründung sicherlich Recht, auf einer Seite, bei der man nicht ein gewisses Midestniveau der Besucher vorraussetzen kann, halte ich dies allerdings für zu kompliziert.
Ich setze es im Moment hauptsächlich für eine Seite ein, auf die nur ein sehr eingeschränkter Nutzerkreis Zugriff hat (Mitgliederverwaltung eines Sportvereines) - ich weiß also, wer das hinbekommt und wer nicht (Wobei die Ober-DAUs das Daten-Eingeben sowieso mich machen lassen :-))
Bedenke, wie viele Möglichkeiten es gibt, ein Datum zu formatieren:
- DD.MM.(YY)YY
- (YY)YY.DD.MM
- (YY)YY-MM-DD
- DD/MM/(YY)YY
- (YY)YY/MM/DD
Aus Sicht meiner Funktion sind die 1. und 4. sowie die 3. und 5. Möglichkeit jeweils identisch, die 2. Möglichkeit kennt es nicht (die ist allerdings hier auch eher ungebräuchlich).
Zusätzlich baue ich auch noch http://www.mattkruse.com/javascript/calendarpopup/ mit ein, womit man ein Datum auch relativ bequem eingeben kann.
Den zweiten und dritten davon finde ich brauchbar - allerdings in der aktuellen Form nicht für z.B. ein Geburtsdatum, da es dort ewig dauern würde, bis man z.B. beim Jahr 1960 angelangt ist ;-)
Es gibt auch eine Option bei der das Jahr in einem input-Feld steht (das 8. Beispiel)
Bei den meisten Kalender willst du ein PopUp öffnen,
wieso ich? das Script stammt nicht von mir :-) Du kannst aber alles auch so wie das 2. und 3. Beispiel unter dem Input-Feld aufklappen lassen - ich habe auch keine Popups verwendet.
was mein Firefox blockt.
blockt der auch angeforderte Popups?
Suchst du gerne einen Eintrag aus einem Select-Feld das über 80 Einträge enthält?
Das geht verhältnismäßig schnell.
du sagst es: "verhältnismäßig" aber bestimmt nicht schneller, als ich das Jahr von Hand eingegeben habe :-P
Und was machst du wenn du ein Jahr in der Zukunft brauchst?
Das ist bei einem Geburtsdatum nie der Fall ;-)
Aber bei Feldern in denen angegeben werden soll, bis wann z.B. ein Attest gültig ist ...
$datum = preg_replace('~^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$~',"$3-$2-$1",$_POST['datum']);
Hier ist nun aber ein Datum wie DD.MM.YY nicht erlaubt.
nein, hier ist nur DD.MM.YYYY erlaubt - aber genau das gibt ja meine Datumsprüffunktion zurück :-)
Wäre vielleicht sogar sinnvoll, damit du eine Angabe wie 2005-17-69 entlarfen kannst ;-)
wie gesagt: wenn jemand so ein Datum eingibt, kommt das Script überhaupt nicht bis zu der Stelle, an der das preg_replace verwendet wird.
Grüße aus Nürnberg
Tobias