Zum Inhalt springen

Datum auf gueltigkeit prüfen


Empfohlene Beiträge

Hallo,

wie kann ich eine eingabe pruefen ob es im Format YYYY-MM-YY eingegeben wurde?

Da ich mit Regulären Ausdrücken auf Kriegsfuß stehe, möchte ich sie nicht verwenden.

Kann ich da evtl die Funktion strtotime() zweckentfremden oder gibts ne bessere Lösung?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nunja, kills hat ja eigentlich recht... aber du kannst RegEx mehr oder weniger auf einer anderen "einfacheren" art schreiben:

mit split()

Du lässt das Datum als String eingeben und splitest es an den "-".

Sollte einer der drei neuen Strings leer sein ->Ausgabe"Fehler"

Ansonsten kannst du über ne If (bereichs)abfrage checken ob die werte passen:

Pseudocode (orientiert an PHP):


if ($year > 2050 && $year < 1950){
ausgabe"fehler"
}
if ($month = 1 || $month = 3 || month = 5 || ...){ #Monate mit 31 Tagen, bitte macht was schöneres draus
if($day < 1 || $day > 31){
Ausgabe"Fehler";
}
#und so weiter
}
[/php]

Link zu diesem Kommentar
Auf anderen Seiten teilen

nur mal ein kleiner einschub.

mein chef hat mich vor kurzen auf eine ganz coole idee gebracht.

wir entwickelten ein cms für einen kunden und haben dort beschlossen datums und uhrzeiten in jedem erdenklichen foormat zuzulassen. natürlich erfordert das ein bisschen js bzw php checking, aber im edneffekt war unser kunde total begeistert und wunderte sich dass er datums und uhrzeiten so eingeben kann wie er will und nicht immer fehlermedlungen alls (bitte das datum im format tt-mm-jjj) eingeben.

er kann nun z.b. für das datum 01.01.2005 folgende formate eingeben

1.1.5

01.1.05

1.01.2005

1.1.005

01.01.2005 (natürlich ;))

...

bei uhrzeiten kann er z.b. für 00.30

0.30

00:30

0:30

00.30

für 00:03

0.3

0:3

00:3

00.3

etc. find ich einfach sehr cool ;) ansonsteon viel erfolg bei der lösung deines probs, ich denke auch, dass die regEx lösung wohl die beste sein wird wenn du ein gewisses format vorgibst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

er kann nun z.b. für das datum 01.01.2005 folgende formate eingeben

1.1.5

01.1.05

1.1.005

01.01.2005 (natürlich ;))

Ja klar, man muss ja auch an den Umsatz in der Zukunft denken, hat ja schonmal geklappt. :rolleyes:

etc. find ich einfach sehr cool ;) ansonsteon viel erfolg bei der lösung deines probs, ich denke auch, dass die regEx lösung wohl die beste sein wird wenn du ein gewisses format vorgibst.

Nein! dafür gibt es checkdate

http://de.php.net/checkdate

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

also nach allem hin und her denke ich, dass ich es so mache:

Je ein Textfeld fuer Tag, Monat, Jahr dann mach ich checkdate().

Das mit Dropdown: Wenn der User klug genug ist schon, aber er kann ja dann auch den 31. April eingeben, was nicht so doll wäre.

Also so funktionierts sehr gut:

if(@checkdate($_POST["beginn_monat"],$_POST["beginn_tag"],$_POST["beginn_jahr"]) && @checkdate($_POST["ende_monat"],$_POST["ende_tag"],$_POST["ende_jahr"]))

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm... du kannst ja die auswahlmöglichkeiten abhängig der wahl machen.

als erstes muss er das jahr auswählen, dann wird der monat freigegeben, nach auswahl dieses wird anhand des ausgewählten Monats die Tagesanzahl bestimmt, isses Februar wird aufs jahr geuckt ob 28 oder 29. und wenn die anzahl der tage festgelegt sind wird das feld für die tage freigegeben.

erfordert n bisschen aufwand aber so ist es zu 100% sichergestellt das der user nix falsches eingibt, kann er ja auch garnet ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

egal ob man per Javascript irgendwas freischaltet, kritische Daten müssen immer auf den Server überprüft werden.

Ich kann Formulare auch ohne das entsprechende Formular abschicken und wilde Werte, bis zu SQL Injection Strings übermitteln, egal ob es sich um eine Checkbox, select-box mit Zahlen oder was auch immer handelt.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...