Datum überprüfen
PaulY
- javascript
0 Cheatah0 Struppi
Hallo,
gibt es in JS eine Funktion (wie in VB isDate()) zum überprüfen von gültigen Datumsangaben. oder muss ich den String zerpflücken?
Hi,
gibt es in JS eine Funktion (wie in VB isDate()) zum überprüfen von gültigen Datumsangaben. oder muss ich den String zerpflücken?
oder. Natürlich kannst Du new Date() stur mit dem String füttern, sofern ein gewisses Format vorgesehen ist, und einen eventuellen Fehler abfangen.
Cheatah
Hallo,
oder. Natürlich kannst Du new Date() stur mit dem String füttern, sofern ein gewisses Format vorgesehen ist, und einen eventuellen Fehler abfangen.
Das allein wird nicht viel bringen. Man kann new Date() auch ein formal ungueltiges Datum uebergeben und es wird weiter gezaehlt:
var test=new Date(2003,0,32); // 32. Januar 2003
alert(test); // ergibt den 1. Februar 2003
Man kann aber Tag, Monat und Jahr aus dem neuen Datum mit den Werten aus dem Originaldatum vergleichen.
MfG, Thomas
Hi,
oder. Natürlich kannst Du new Date() stur mit dem String füttern, sofern ein gewisses Format vorgesehen ist, und einen eventuellen Fehler abfangen.
var test=new Date(2003,0,32); // 32. Januar 2003
ich dachte eigentlich eher an einen GMT-String. Hier musstest Du ja bereits den String zerlegen, um diese Daten zu extrahieren.
Cheatah
Hallo,
ich dachte eigentlich eher an einen GMT-String.
... den aber wohl kaum jemand eingeben wird.
Hier musstest Du ja bereits den String zerlegen, um diese Daten zu extrahieren.
Das wird wohl bei Eingabefeldern oder drei Auswahlfeldern [Tag|Monat|Jahr] das Mittel der Wahl sein.
MfG, Thomas
Hi,
ich dachte eigentlich eher an einen GMT-String.
... den aber wohl kaum jemand eingeben wird.
daher ja auch "sofern ein gewisses Format vorgesehen ist" ;-)
Hier musstest Du ja bereits den String zerlegen, um diese Daten zu extrahieren.
Das wird wohl bei Eingabefeldern oder drei Auswahlfeldern [Tag|Monat|Jahr] das Mittel der Wahl sein.
Tja, da stimme ich Dir zu - das lässt sich mittels Dropdowns am günstigsten gestalten. Allerdings lässt die Frage den Schluss zu, dass so etwas nur bedingt zur Debatte steht.
Cheatah
Hallo,
gibt es in JS eine Funktion (wie in VB isDate()) zum überprüfen von gültigen Datumsangaben. oder muss ich den String zerpflücken?
Ja und dann am sinnvollsten mit dem date objekt weiterarbeiten.
http://selfhtml.teamone.de/javascript/objekte/date.htm
var check = new Date(Jahr,Monat,Tag);
Und dann check mit deinen ursprünglichen Datum vergleichen. (getDate(), getMonth(), getYear())
Struppi.
var check = new Date(Jahr,Monat,Tag);
Und dann check mit deinen ursprünglichen Datum vergleichen. (getDate(), getMonth(), getYear())
Struppi.
das sagt mir aber noch nicht das es den 30.02.2003 nicht gibt, den der 30.02.2003 ist für new Date() der 02.03.2003. und das bedeutet einen kalender programmieren (oder?). Misst!
var check = new Date(Jahr,Monat,Tag);
Und dann check mit deinen ursprünglichen Datum vergleichen. (getDate(), getMonth(), getYear())
Struppi.
das sagt mir aber noch nicht das es den 30.02.2003 nicht gibt, den der 30.02.2003 ist für new Date() der 02.03.2003. und das bedeutet einen kalender programmieren (oder?). Misst!
Hast du's probiert?
um es kurz zu m achen, doch es sagt dir das.
Struppi.
var check = new Date(Jahr,Monat,Tag);
Und dann check mit deinen ursprünglichen Datum vergleichen. (getDate(), getMonth(), getYear())
Struppi.
das sagt mir aber noch nicht das es den 30.02.2003 nicht gibt, den der 30.02.2003 ist für new Date() der 02.03.2003. und das bedeutet einen kalender programmieren (oder?). Misst!
Hast du's probiert?
um es kurz zu machen, doch es sagt dir das.
sorry, hatte dein posting nicht richtig gelesen.
Du musst es so machen, das du erst den String zerpflückst und dann hast du:
day1, month1, year1
daraus machst du mit new Date ein neues Objekt:
date = new Date(day, month, year)
und das vergleichst du mit der urspünglichen Eingabe:
return (day1 == date.getDate() && month1 == date.getMonth()+1
&& year1 == date.getFullYear());
Struppi.
Hast du's probiert?
um es kurz zu m achen, doch es sagt dir das.
Struppi.
Ja du hast recht aber ne feine lössung ist das nicht. Ich brauche isDate aus VB.
Ja du hast recht aber ne feine lössung ist das nicht. Ich brauche isDate aus VB.
Hier ist die Funktion eingebaut (heißt aber checkDate()), http://home.arcor.de/struebig/js/short/datum.htm
Struppi.
Hallo,
das sagt mir aber noch nicht das es den 30.02.2003 nicht gibt, den der 30.02.2003 ist für new Date() der 02.03.2003. und das bedeutet einen kalender programmieren (oder?). Misst!
Eben dort liegt auch die Loesung. Neues Datum in die Komponenten zerlegen und mit dem Original vergleichen:
var t,m,j,test;
t=29;
m=2;
j=2003;
test=new Date(j,m-1,t);
if(test.getDate()==t && test.getMonth()+1==m && test.getFullYear()==j)alert("Datum ok");
else alert("Datum nicht ok");
MfG, Thomas