Ankündigung

Einklappen
Keine Ankündigung bisher.

Datumsdifferenz in Tagen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datumsdifferenz in Tagen

    Hallo,
    ich versuche mich seit kurzem mit javascript.
    Die ersten Anfangsschwierigkeiten machten mir ganz schön zu schaffen.
    Nun versuche ich mich an der Differenz zwischen zwei Daten(Mehrzahl von Datum)
    Dies hab ich so versucht:
    Code:
    var txtdatumvon = document.getElementById("txtdatumvon").value;
    var txtdatumbis = document.getElementById("txtdatumbis").value;
    // differenz der tage herausfinden
    var c = txtdatumvon.split(".");
    anfang = new Date(c[2],c[1],c[0]);
    var d = txtdatumbis.split(".");
    ende = new Date(d[2],d[1],d[0]);
    var differenz = (ende - anfang)/86400000;
    alert(differenz);
    funktioniert soweit auch ganz gut, nun bin ich allerdings drauf gekommen wenn ich als Startdatum den 31.05.2012 und als Enddatum den 01.06.2012 her nehme, dass er mir als Differenz 0 liefert.
    Gebe ich den 30.05.2012 als Startdatum und als Enddatum den 01.06.2012 ein, liefert er mir als Ergebnis 1.
    Was hab ich da denn falsch gedacht?
    Alles was zwischen einem Monat steht, da stimmt die Rechnung nämlich.

  • #2
    Date-Objekte sind keine Zahlen. Das hast du falsch gedacht.
    "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

    Kommentar


    • #3
      Dein Ansatz mit einer festen Sekundenanzahl für den Tag versagt, wenn ein Zeitpunkt in die Sommerzeit fällt und der andere in die Winterzeit. In dem Beitrag Datums- und Zeitdifferenzen berechnen - Function DateDif wird diese Problematik diskutiert und du bekommst auch gleich eine fertige js-function incl. einiger Beispiele.

      Kommentar


      • #4
        Zitat von Dark Guardian Beitrag anzeigen
        Date-Objekte sind keine Zahlen. Das hast du falsch gedacht.
        Nein, so wie er das Date-Object erzeugen will ist eine mögliche Variante (3). Er hat jedoch eine Besonderheit nicht beachtet, die Monate zählen ab 0 (warum auch immer). Er hat also versucht die Differenz zwischen 31.6. und 1.7. zu berechnen, da es den 31.6. nicht gibt wird der 1.7. generiert und die Differenz wird 0.

        Kommentar


        • #5
          @jspit: Danke, genau das war die Lösung, jetzt funktioniert. Auf das wär ich nie gekommen dass Monate ab 0 beginnen.

          Kommentar


          • #6
            Bitte. Aber das Problem mit der Sommer/Winterzeit bleibt.

            Kommentar


            • #7
              Zitat von jspit Beitrag anzeigen
              Nein, so wie er das Date-Object erzeugen will ist eine mögliche Variante (3).
              Darauf wollte ich nicht hinaus, sondern auf:

              Code:
              var differenz = (ende - anfang)/86400000;
              Aber offensichtlich ist JS in der Lage vom Date-Objekt implizit nach Integer zu casten.
              "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

              Kommentar

              Lädt...
              X