Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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!

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?

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.

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.

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.