Hannes Weninger: Vergleich zweier Datums

Hallo,

ich hab in meiner Applikation auf der einen Seite einen String:

var date = '26.04.2016';

und ich will checken, ob dieses Datum vor heute ist:

var today = new Date();

Wie kann ich das am besten machen. Ich muss ja vorher date in ein Datums Objekt umwandeln und dann mit today vergleihen oder?

Danke für eure Hilfe! Hannes

  1. Tach!

    ich hab in meiner Applikation auf der einen Seite einen String:

    var date = '26.04.2016';

    In der Form ist das Datum nicht vergleichbar. In der Jahr-Monat-Tag-Schreibweise würde das jedoch mit einem String gehen.

    und ich will checken, ob dieses Datum vor heute ist: Wie kann ich das am besten machen. Ich muss ja vorher date in ein Datums Objekt umwandeln und dann mit today vergleihen oder?

    Genauso. Erstmal zerlegen, dann ein Datum draus machen (beim Monat aufpassen) und dann ist es vergleichbar.

    dedlfix.

  2. Tach,

    ich hab in meiner Applikation auf der einen Seite einen String:

    var date = '26.04.2016';

    und ich will checken, ob dieses Datum vor heute ist:

    var today = new Date();

    Ich muss ja vorher date in ein Datums Objekt umwandeln und dann mit today vergleihen oder?

    genau, z.B. den String zerlegen, in ein Datums-Objekt füttern (Variante 3); dabei darauf aufpassen, dass Javascript die Monate von 0-11 zählt; und dann beim (oder vor dem) Vergleichen noch darauf aufpassen, dass das Objekt zwar Date heißt, aber auch die Uhrzeit enthält, z.B. indem du die Uhrzeit deines today-Objekts an die des anderen Datums anpasst. Alternativ, kannst du auch aus dem today-Objekt Tag, Monat und Jahr extrahieren und direkt mit den Werten aus dem zerlegten String vergleichen oder aus diesen einen String erzeugen und diesen mit deinem vorhandenen String vergleichen.

    mfg
    Woodfighter

    1. Ich habs jetzt mit dem Code versucht:

      var parts = scheduleAbsenceDayContainer.date.split('.');
              	var dateObj = new Date(parts[2], parts[1], parts[0], 0, 0, 0);
              	var today = new Date();
      
              	if ( dateObj.getTime() > today.getTime() ) { 
              		return;
              	}
      

      witzigerweise geht er immer zu return rein. Was mach ich da falsch?

      1. Hallo,

        witzigerweise geht er immer zu return rein. Was mach ich da falsch?

        vermutlich genau das, vor dem du gewarnt wurdest. Monatszählung!

        Gruß
        Kalk

      2. Tach!

        witzigerweise geht er immer zu return rein. Was mach ich da falsch?

        Browser haben mittlerweile Werkzeuge an Bord, auch um Javascript zu debuggen. Nutzt diese und schau dir an, ob in den Variablen das drin steht, was du erwartest.

        dedlfix.

  3. @@Hannes Weninger

    BTW, der Plural von Datum ist: Daten.

    „Der Plural von Datum - einer der groessten Irrten der Menschheit“Bademeister

    LLAP 🖖

    --
    “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
    Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|