Noob: Differenz zwischen zwei Daten

Moinsen,
ich habe ein Problem was ich mit den Tutorials einfach nicht gebacken kriege:

Ich haben zwei Daten(x und y). Nun möchte ich die Anzahl der Tage erlangen, die seitdem vergangen sind. Ich haffe es einfach nicht auf die Reihe gekriegt.

Die Variablen der Daten sehen wie folgt aus.

TT.MM.JJJJ SS:MM also z.B. 03.11.1999 18:24

Ich hoffe, dass mir jemand helfen kann.

  1. Hallo,

    Du kannst beide Daten in einen Timestamp umwandeln und zwar so. Die Differenz in Sekunden rechnest du wieder um in Tage, oder was immer du brauchst.

    Dieter

    1. Hallo,

      Du kannst beide Daten in einen Timestamp umwandeln und zwar so. Die Differenz in Sekunden rechnest du wieder um in Tage, oder was immer du brauchst.

      Dieter

      Erstmal danke für die schnelle Hilfe.
      Jedoch funktioniert es bei mir noch nicht wie gewünscht.

      Die Variable (((usersignuptime))) ist in meinem Falle= 03.10.2004 17:18

      <html><head><title>Test</title>
      </head><body>
      <script type="text/javascript">
      <!--
      x = (((usersignuptime)))
      y = new Date(Jahr,Monat,Tag,Stunden,Minuten);

      document.write(x(y));
      //-->
      </script>

      1. Hallo,

        Du wirst dir schon die Muehe machen mueesen, die Werte entsprechen umzustellen.

        Dieter

        1. Hallo,

          Du wirst dir schon die Muehe machen mueesen, die Werte entsprechen umzustellen.

          Dieter

          Das hört sich alles leider ganz einfach an. Doch ich weiss überhaupt nicht wie ich das anstellen soll.

          1. Hallo,

            Du wirst dir schon die Muehe machen mueesen, die Werte entsprechen umzustellen.

            Dieter

            Das hört sich alles leider ganz einfach an. Doch ich weiss überhaupt nicht wie ich das anstellen soll.

            So ich hab es geschafft mein Problem zulösen. Vielen Dank.

          2. Hallo,

            Im folgenden Beispiel wird usersignuptime immer wieder verändert, bzw. überschrieben, bis wir endlich die gewünschetn Informationen haben.
            <script type="text/javascript">
            // 1. das ist deine Ursprungszeit
            var usersignuptime = "03.10.2004 17:18";

            // 2. mit der Methode replace wird daraus 03.10.2004.17.18.
            // Der reguläre Ausdruck im Beispiel / :/g bedeutet "ersetze in usersignuptime Leerzeichen (' ') oder ('|') Doppelpunkt (':') global ('g'), also überall durch Punkt ('.')"
            usersignuptime = usersignuptime.replace(/ |:/g, '.');

            // Warum haben wir jetzt alle Trennzeichen durch Punkte ersetzt? Ganz einfach, man haette so ziemlich jedes andere Zeichen nehmen könne, Hauptsache, alle Trennzeichen sind gleich, denn:
            // 3. mit der Methode split splitten wir usersignuptime am Punkt in ein Array, das so aussieht:
            // usersignuptime[0] = 03;
            // usersignuptime[1] = 10;
            // usersignuptime[2] = 2004;
            // usersignuptime[3] = 17;
            // usersignuptime[4] = 18;
            usersignuptime = usersignuptime.split('.');

            // Zum Schluss setzen wir das ganze nochmal in neuer Ordnung zusammen
            alert(Date.UTC(usersignuptime[2],usersignuptime[1],usersignuptime[0],usersignuptime[3],usersignuptime[4],00));

            </script>
            Dieter

    2. Hallo Dieter,

      Du kannst beide Daten in einen Timestamp umwandeln und zwar so. Die Differenz in Sekunden rechnest du wieder um in Tage, oder was immer du brauchst.

      Wehe in der Zwischenzeit ging die Sommerzeit zu Ende (oder begann) :-) Dazu gabs neulich einen interessanten Thread, http://forum.de.selfhtml.org/archiv/2004/10/92394/#m556855

      Freundliche Grüsse,

      Vinzenz

      1. hi,

        Du kannst beide Daten in einen Timestamp umwandeln und zwar so. Die Differenz in Sekunden rechnest du wieder um in Tage, oder was immer du brauchst.

        Wehe in der Zwischenzeit ging die Sommerzeit zu Ende (oder begann) :-) Dazu gabs neulich einen interessanten Thread, http://forum.de.selfhtml.org/archiv/2004/10/92394/#m556855

        was kümmert UTC die sommer- oder winterzeit ...?

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Hallo wahsaga,

          was kümmert UTC die sommer- oder winterzeit ...?

          nicht, und das kann je nach Ansicht ein Problem darstellen.

          Die durchschnittliche Dauer eines siderischen Jahres nimmt man nicht zum Maß des Abstandes zweier Datumsangaben in vollen Jahren. Fällt in den betreffenden Zeitraum der 29. Februar, so sind 366 Tage erforderlich, sonst 365.

          Genausowenig kannst Du unter allen Umständen bei der Differenzbestimmung zweier Datumsangaben in vollen Tagen von 86400 Sekunden pro Tag ausgehen.

          Die Differenz vom 30.10.2004 12:00 Uhr MESZ und 31.10.2004 12:00 MEZ kann durchaus als ein voller Tag angesehen werden. Wenn derart gerechnet wird, dann kann die Berechnung gemäß UTC fehlerhafte Ergebnisse liefern.

          Es ist durchaus üblich, so zu rechnen.

          Freundliche Grüsse,

          Vinzenz

          1. Vinzenz,

            Genausowenig kannst Du unter allen Umständen bei der Differenzbestimmung zweier Datumsangaben in vollen Tagen von 86400 Sekunden pro Tag ausgehen.

            Richtig, es können auch 86401 oder 86399 sein. (Wobei letzteres noch nicht vorgekommen ist.)

            Die Differenz vom 30.10.2004 12:00 Uhr MESZ und 31.10.2004 12:00 MEZ kann durchaus als ein voller Tag angesehen werden.

            Durchaus. Es ist sogar mehr: 25 Stunden.

            Wenn derart gerechnet wird, dann kann die Berechnung gemäß UTC fehlerhafte Ergebnisse liefern.

            Um bei deinem Beispiel zu bleiben: Die Differenz von 2004-10-30T10:00Z bis 2004-10-31T11:00Z ergibt 25 Stunden. Was ist daran fehlerhaft?

            Gunnar

            --
            "Nobody wins unless everybody wins." (Bruce Springsteen)
            1. Hallo Gunnar,

              Die Differenz vom 30.10.2004 12:00 Uhr MESZ und 31.10.2004 12:00 MEZ kann durchaus als ein voller Tag angesehen werden.

              Durchaus. Es ist sogar mehr: 25 Stunden.

              Da hast Du recht :-) *schäm*

              Wenn derart gerechnet wird, dann kann die Berechnung gemäß UTC fehlerhafte Ergebnisse liefern.

              Um bei deinem Beispiel zu bleiben: Die Differenz von 2004-10-30T10:00Z bis 2004-10-31T11:00Z ergibt 25 Stunden. Was ist daran fehlerhaft?

              Um nicht bei meinem Beispiel zu bleiben, wir sind doch flexibel: Nimm den Unterschied zwischen dem 30.10.2004 12:00 MESZ und dem 31.10.2004 11:55 MEZ :-)

              Freundliche Grüsse,

              Vinzenz

          2. Hi,

            Die Differenz vom 30.10.2004 12:00 Uhr MESZ und 31.10.2004 12:00 MEZ kann durchaus als ein voller Tag angesehen werden. Wenn derart gerechnet wird, dann kann die Berechnung gemäß UTC fehlerhafte Ergebnisse liefern.

            eigentlich genau dann eben nicht.
              alert((Date.UTC(2004,9,31,12)-Date.UTC(2004,9,30,12))/1000/60/60);
            gibt 24.

            freundliche Grüße
            Ingo