PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tolerante Datumseingabe / Date-Time-Parser



tschloss
16-08-2006, 10:09
Hi,
habe im PEAR leider nichts passendes gefunden, auch im CPAN nicht wirklich (Rose::* hat noch die weitestgehenden Methoden, finde ich).

Ich implementiere gerade eine Task-Verwalter (Aufgaben). Mein Ziel ist es, die Usability möglichst hoch zu bekommen, das heißt unnötige Eingaben überflüssig zu machen.
Das Datumsfeld ist ein Kandidat dafür.

Gibt es eine entsprechende Klasse für die Eingabe von Datum[+Zeit]?
Die Eingabe soll geparst werden. Fehlende Angaben sollen erkannt werden und mit Standards ergänzt werden (zB Jahr, Monat => aktueller).
Kurzeingaben für "heute" ["=", <leer>, "heute"], "in n Tagen" ["+10"], "in n Wochen" ["+4w"], "in n Monaten" ["+3m"] etc. wären sehr wünschenswert. Syntax kann eine andere sein, Hauptsache kurz!

Manche Linux-Commandline-Tools können das auch, zB. shutdown.

Es gibt doch zahlreiche Parser aber irgendwie zielen die meisten auf die Wandlung vollständiger Datumsangaben in unterschiedlichen Formaten ab.

Thx for hints.
Thomas

undefined
16-08-2006, 10:15
Du kannst mit strtotime solche eingaben Prüfen. Wenn es null oder den begin der Unixtime zeigt dann stimmt die Eingabe nicht.
Shutdown macht das gleiche http://www.gnu.org/software/tar/manual/html_node/tar_109.html

tomes
18-08-2006, 21:25
Also kennen tu ich so etwas auch nicht. Koennte man sich selber aber schreiben. Sollte nicht so schwer sein.
Aber der User muss wissen das bei [+4m] m gleich Monat und nicht Minuten sind ;)

Waehre es da nicht ein "Klick-Calender" sinnvoller ?
Als Beispiel :
http://www.sandtom.net/calendar.php

Oder habe ich da was falsch verstanden ?

tomes

tschloss
19-08-2006, 09:05
Thx.

@undefined: ich schaue mir strtotime nochmals an, aber ich habe in Erinnerung, dass das mit "now" oder "tomorrow" oder etwas wie "+3d" nicht viel anfangen kann.
/edit: tatsächlich, URr8!
http://de.php.net/manual/de/function.strtotime.php
Das ist doch ziemlich flexibel. Nett. Sieht so aus, als nehme ich das. Thx!

@tomes: klar kann ich mir das selbst schreiben, aber EIngabe/Ausgabe ist natürgemäß nicht so easy, weil der Benutzer ja auf die abstrusesten Ideen kommen kann. Und warum das Rad nochmals erfinden.
Ein Klickkalender ist genau das, was ich nicht will. Ich will die Zahl der EIngaben und noch mehr die der Klicks minimieren. Diese Formularausfüllerei ist eine Pain, v.a. wenn man viele Felder hat und immer auf einen Wechsel Maus / Tastatur angewiesen ist. Ich finde ein +1m einfach besser als Klick in Kalender Klick auf nächster Monat Klick auf einen Tag Klick auf Ok, Tab ins nächste Feld....
Außerdem ist das eh nur für mich. Die Welt darf weiter klicken....

Greetz
Thomas

nEox
19-08-2006, 11:02
Hi tschoss,

falls du den Kalender nicht aus lernzwecken selbst schreibst, würde ich dir den Google Calendar (http://www.google.com/calendar/render?pli=1) empfehlen. Über die "Quick add" Funktion links kann man auch so Eingaben machen wie "Dinner with Michael 7pm tomorrow", das dann direkt in den Kalender eingetragen wird.

Grüße,
nEox