Zum Inhalt springen

Datum prüfen


Gast KnapsackSolver

Empfohlene Beiträge

Gast KnapsackSolver

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&aumlhlte Datum kann nicht ausgew&aumlhlt werden.<br> Fr&uumlhster 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 von SakulRelda
Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast KnapsackSolver

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast KnapsackSolver

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&aumlhlte Datum kann nicht gew&aumlhlt werden \n.<br> Fr&uumlhster 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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

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...