Gast KnapsackSolver Geschrieben 29. Oktober 2014 Teilen Geschrieben 29. Oktober 2014 (bearbeitet) Hallo Community, ich habe eine Frage bezüglich einer Überprüfung des Datums mit JavaScript! Ich lese aus einem Textfeld ein bestimmtes Datum ein (Format : TT-MM-YYYY z.B. 07-12-2014)! Anschließend möchte ich überprüfen ob dieses eingegebene Datum mindestens 6 Wochen in der Zukunft des heutigen Tages liegt!! Folgender Code habe ich dazu geschrieben, wieso geht das nicht? function check_date(){ var val = document.getElementById('iDate').value; var call = document.getElementById('feedDATE'); var val1 = val.toString(); var datum = val1.split("-"); if(datum.length!=3){ call.style.color = "#ff352c"; call.innerHTML = "<strong>X</strong>"; }else{ var vDate = new Date(); vDate.setYear(datum[2]); vDate.setMonth(vDate.getMonth()+2); vDate.setDate(vDate.getDate()+14); //alert(vDate.toString()); var vDate2 = new Date(datum[2],datum[1]-1,datum[0]); //alert(vDate2.toString()); if(vDate2<vDate){ call.style.color = "#ff352c"; //call.innerHTML = "vDate.toString()"; var tag = vDate.getDate()+1; var monat = vDate.getMonth()+1; call.innerHTML = "<strong>Das ausgewählte Datum kann nicht ausgewählt werden.<br> Frühster Termin:"+tag+"."+monat+"</strong>"; }else{ call.style.color = "#56a40c"; //call.innerHTML = "vDate.toString()"; call.innerHTML = "<strong>✔</strong>"; } } } Also am Anfang teile ich das Datum 07-12-1992 durch Split in die Grundteile 07, 12, 2014 auf! Dann erstelle ich mit diesen Daten ein Date! Bearbeitet 29. Oktober 2014 von SakulRelda Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 29. Oktober 2014 Teilen Geschrieben 29. Oktober 2014 Aehm, warum so kompliziert? vdate1 = was du einliest vdate2 = new date() vdate60 = vdate2 - 5184000000 if vdate60 > vdate1 dann liegt mehr als 60 Tage zurück sonst nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast KnapsackSolver Geschrieben 29. Oktober 2014 Teilen Geschrieben 29. Oktober 2014 Klingt schon mal ganz gut. Was mir aber auch noch aufgefallen ist, ist dass es irgendwie Probleme mit den Monaten gibt. Kann es sein, dass ein Fehler in der API gibt ? datum[1]-1 Ich muss immer diese Rechnung vornehmen, damit ich auch wirklich auf den tatsächlichen Monat komme! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SilentDemise Geschrieben 29. Oktober 2014 Teilen Geschrieben 29. Oktober 2014 Mit welchem Index beginnt ein Array? Gern geschehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast KnapsackSolver Geschrieben 29. Oktober 2014 Teilen Geschrieben 29. Oktober 2014 Danke aber was komisch ist: Wenn ich jetzt ins neue Jahr wechsel dann stimmt alles nicht mehr! function check_date(){ var val = document.getElementById('iDate').value; var call = document.getElementById('feedDATE'); var val1 = val.toString(); var datum = val1.split("-"); if(datum.length!=3){ call.style.color = "#ff352c"; call.innerHTML = "<strong>X</strong>"; }else{ var vDate = new Date(); vDate.setYear(datum[2]); vDate.setMonth(vDate.getMonth()+1); vDate.setDate(vDate.getDate()+14); var vDate2 = new Date(datum[2],datum[1]-1,datum[0]); if(vDate2<vDate){ call.style.color = "#ff352c"; var tag = vDate.getDate()+1; var monat = vDate.getMonth()+1; var year = vDate.getYear(); call.innerHTML="<strong>Das ausgewählte Datum kann nicht gewählt werden \n.<br> Frühster Termin:"+tag+"."+monat+"."+year+"</strong>"; }else{ call.style.color = "#56a40c"; call.innerHTML="<strong>✔</strong>"; } Wenn ich mir dann anschaue was in der var year steht, steht 114 darin, wieso? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gooose Geschrieben 29. Oktober 2014 Teilen Geschrieben 29. Oktober 2014 Hast du dir mal eine Referenz zum Thema Datum angeschaut? ( z.B. MDN oder w3c school). Datumsverhalten kannst du auch in einer Debug-Konsole durchspielen, und dir die Frage selbst beantworten. Wenn ein Beispiel zu komplex ist, mach es einfacher. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 29. Oktober 2014 Teilen Geschrieben 29. Oktober 2014 Und nochmal von mir die Frage, was treibst du eigentlich? Warum zerlegst du das Datum in seine Einzelteile? Ziehe vom heutigen Datum 5184000000 Millisekunden ab ( = 60 Tage) und wenn dann vergleiche direkt mit deinem Ursprungsdatum. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Heikooo Geschrieben 30. Oktober 2014 Teilen Geschrieben 30. Oktober 2014 Korrekt. Wozu das Rad neu erfinden und das berechnen komplett selbst übernehmen? Es gibt Zeitstempel die das Rechnen um vieles vereinfachen. Und nochmal von mir die Frage, was treibst du eigentlich? Warum zerlegst du das Datum in seine Einzelteile? Ziehe vom heutigen Datum 5184000000 Millisekunden ab ( = 60 Tage) und wenn dann vergleiche direkt mit deinem Ursprungsdatum. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.