Oliver: Differenzzeit berechnen ???

Hallo,

ich hätte da mal wieder ein kleines Problem.

Ich habe eine Tabelle mit verschiedenen Daten.
U.a. Spalte 1: DateEvt, Spalte 2: DateRtn

In diesen beiden Spalten stehen jeweils merhere Datum's.

Z.B. DateEvt: 12.07.01 12:00:00
        DateRtn: 13.07.01 14:20:10

Der Zugriff auf die Tabelle ist nicht so wichtig mir geht es mehr
um die Berechnung dieser beiden Varialben.
Ich möchte die Differenzzeit (DateRtn - DateEvt) berechnen.
Das Ergebnis soll folgendes Format haben:
Hh:mm:ss d.h. 26:20:10.

Wie ist das in JavaScript möglich.

Es könnte auch folgendes Format haben: Tage/ hh.mm:ss
d.h. 1/ 02:20:10

Ich würde mich echt über eine Antwort von Euch freuen.

Vielen Dank
Oliver

  1. hi Oliver

    als erstes ist es sicherlich hilfreich
    mit dem Date Objekt zu arbeiten.
    (http://www.teamone.de/selfhtml/tece.htm)

    Z.B. DateEvt: 12.07.01 12:00:00
            DateRtn: 13.07.01 14:20:10

    wenn der Zeitstempel folgendes Format hätte
    könntest du direkt mit Date.parse(meinDatumsString) arbeiten:
    meinDatumsString ='Tue, 1 Jan 2000 00:00:00 GMT'

    ansonsten musst du die 2 Date-Objekte wie
    folgt erzeugen:
    http://www.teamone.de/selfhtml/tece.htm#a1

    oder du machst ein:
    meinDatum1 = new Date();
    und dann setzt du die einzellnen werte:
    z.B
    meinDatum1.setHours(4)

    am schluss solltest du 2 Date-Objekte
    haben und die differenz der beiden ermitteln können.

    zeitDiff = meinDatum1.getTime() - meinDatum2.getTime()

    die zeitDiff is in millisekunden und den Rest solltest
    du nun selber schaffen :)

    mfg retoke

    ps: ich hab k.A ob das die einfachste Lösung ist,
    am besten guckst du dir die Beschreibung zum Date-
    objekt nach mal genauer an.

  2. Tag !

    Z.B. DateEvt: 12.07.01 12:00:00         (1)
            DateRtn: 13.07.01 14:20:10      (2)

    Nachdem Deine Daten ja so schön formatiert sind, sollte es eigentlich nicht so schwer sein:

    Du liest die ganzen Zweiergruppen aus (Tag/Monat/Jahr/Stunde/Minute/Sekunde), und dann arbeitest Du Dich vom größten zum kleinsten vor.

    Du fängst also beim Jahr an.
    Zunächst vergleichst Du die Jahreszahlen. Sind sie gleich, hast Du ein Problem weniger und kannst mit den Monaten weitermachen. Sind sie es nicht, mußt Du die Monate vergleichen.
    Ist Monat2 > Monat1 so beträgt die Differenz Jahr2 - Jahr1. Ist Monat1 > Monat2 so beträgt die Differenz Jahr2 - Jahr1 - 1. Wenn Dummerweise dann auch noch Monat1 = Monat2 ist kommst Du nicht drumrum die nächstkleinere Einheit, also die Tage, zu vergleichen. Für die gilt dann eigentlich das selbe wie für die Monate.

    Tja, und wenn Du dann rausgefunden hast, wieviele Jahre rum sind, dann kannst Du mit den Monaten weitermachen, die dann ganz genauso funktionieren wie die Jahre, und die Tage, Stunden, Minuten und Sekunden.

    Weiß schon, das klingt jetzt irre kompliziert und nach einem Haufen Arbeit, aber wenn Du das ganze geschickt in einem Array anordnest (Jahr=0, Monat=1, Tag=2, Stunde=3, Minute=4, Sekunde=5), dann sollte sich das ganze mit ein paar gut verschachtelten Schleifen lösen lassen ...

    Ciao,

    Harry

    1. Moin!

      Weiß schon, das klingt jetzt irre kompliziert und nach einem Haufen Arbeit,

      Es *ist* kompliziert und ein Haufen Arbeit. Denk daran, dass Du auch Schaltjehre beruecksichtigen musst. Die Monate haben verschiedene Anzahlen von Tagen. Nein, von dieser Variante ist dringend abzuraten. retoke hat den richtigen Weg gezeigt.

      So long