NEWS
[GELÖST] Zeitdifferenz berechnen
-
Kann mir wer im Verständnis helfen?
in folgendem Script errechne ich die Differenzen zwischen zwei Zeiten ... etwa 01:00 - 06:00 oder auch über Mitternacht also 23:00 - 3:00. Soweit so gut ...
Wenn ich aber das Ergebnis mit formatDate formatiere oder mit getHours oder getMinutes berechne muss ich die Differenzzeit um genau eine Stunde vermindern damit es stimmt ... warum ?Besten Dank
// berechnet und formatiert Differenz zwischen Zeiten // Zeiten immer in SS:mm oder SS angeben, Sekunden werden nicht berechnet // mögliche Formate: SS:mm (default), SS, mm, Min (Differenz in Minuten) { var myresult; DifferenzZeit = getDateObject(Zeit_bis).getTime() - getDateObject(Zeit_ab).getTime(); if (isNaN(DifferenzZeit)) console.error('Berechnung der Zeitdifferenz nicht möglich. Angabe der Zeiten korrekt?'); // Wenn Zeit bis kleiner Zeit ab ist // geht über Mitternacht if (DifferenzZeit < 0) DifferenzZeit = DifferenzZeit + 86400000; switch (Format) { case 'SS:mm': myresult = formatDate(getDateObject(DifferenzZeit - 3600000), "hh:mm"); break case 'SS': myresult = getDateObject(DifferenzZeit - 3600000).getHours(); break case 'mm': myresult = (getDateObject(DifferenzZeit - 3600000).getMinutes()); break case 'Min': myresult = DifferenzZeit / 60000; break case 'MS': myresult = DifferenzZeit; break default: myresult = formatDate(getDateObject(DifferenzZeit - 3600000), "hh:mm"); break } return myresult; } -
Kann mir wer im Verständnis helfen?
in folgendem Script errechne ich die Differenzen zwischen zwei Zeiten ... etwa 01:00 - 06:00 oder auch über Mitternacht also 23:00 - 3:00. Soweit so gut ...
Wenn ich aber das Ergebnis mit formatDate formatiere oder mit getHours oder getMinutes berechne muss ich die Differenzzeit um genau eine Stunde vermindern damit es stimmt ... warum ?Besten Dank
// berechnet und formatiert Differenz zwischen Zeiten // Zeiten immer in SS:mm oder SS angeben, Sekunden werden nicht berechnet // mögliche Formate: SS:mm (default), SS, mm, Min (Differenz in Minuten) { var myresult; DifferenzZeit = getDateObject(Zeit_bis).getTime() - getDateObject(Zeit_ab).getTime(); if (isNaN(DifferenzZeit)) console.error('Berechnung der Zeitdifferenz nicht möglich. Angabe der Zeiten korrekt?'); // Wenn Zeit bis kleiner Zeit ab ist // geht über Mitternacht if (DifferenzZeit < 0) DifferenzZeit = DifferenzZeit + 86400000; switch (Format) { case 'SS:mm': myresult = formatDate(getDateObject(DifferenzZeit - 3600000), "hh:mm"); break case 'SS': myresult = getDateObject(DifferenzZeit - 3600000).getHours(); break case 'mm': myresult = (getDateObject(DifferenzZeit - 3600000).getMinutes()); break case 'Min': myresult = DifferenzZeit / 60000; break case 'MS': myresult = DifferenzZeit; break default: myresult = formatDate(getDateObject(DifferenzZeit - 3600000), "hh:mm"); break } return myresult; } -
Kann mir wer im Verständnis helfen?
in folgendem Script errechne ich die Differenzen zwischen zwei Zeiten ... etwa 01:00 - 06:00 oder auch über Mitternacht also 23:00 - 3:00. Soweit so gut ...
Wenn ich aber das Ergebnis mit formatDate formatiere oder mit getHours oder getMinutes berechne muss ich die Differenzzeit um genau eine Stunde vermindern damit es stimmt ... warum ?Besten Dank
// berechnet und formatiert Differenz zwischen Zeiten // Zeiten immer in SS:mm oder SS angeben, Sekunden werden nicht berechnet // mögliche Formate: SS:mm (default), SS, mm, Min (Differenz in Minuten) { var myresult; DifferenzZeit = getDateObject(Zeit_bis).getTime() - getDateObject(Zeit_ab).getTime(); if (isNaN(DifferenzZeit)) console.error('Berechnung der Zeitdifferenz nicht möglich. Angabe der Zeiten korrekt?'); // Wenn Zeit bis kleiner Zeit ab ist // geht über Mitternacht if (DifferenzZeit < 0) DifferenzZeit = DifferenzZeit + 86400000; switch (Format) { case 'SS:mm': myresult = formatDate(getDateObject(DifferenzZeit - 3600000), "hh:mm"); break case 'SS': myresult = getDateObject(DifferenzZeit - 3600000).getHours(); break case 'mm': myresult = (getDateObject(DifferenzZeit - 3600000).getMinutes()); break case 'Min': myresult = DifferenzZeit / 60000; break case 'MS': myresult = DifferenzZeit; break default: myresult = formatDate(getDateObject(DifferenzZeit - 3600000), "hh:mm"); break } return myresult; } -
@peterk34 sagte: Wenn ich aber das Ergebnis mit formatDate formatiere
... dann funktioniert es, denn formatDate() berücksichtig, dass kleine Werte (vor 01.01.2000) Differenzen sind. Bei großen Werten wird die Zeitzone berücksichtigt:

cool
var diff = (getDateObject(end).getTime()-getDateObject(start).getTime()); log (formatDate(diff,'hh:mm')); log (formatDate(getDateObject(diff),'hh:mm'));ergibt ...

macht mans so wie du, passts ...
macht mans im blockly wirds wie das zweite Ergebnis -
cool
var diff = (getDateObject(end).getTime()-getDateObject(start).getTime()); log (formatDate(diff,'hh:mm')); log (formatDate(getDateObject(diff),'hh:mm'));ergibt ...

macht mans so wie du, passts ...
macht mans im blockly wirds wie das zweite Ergebnis -
cool
var diff = (getDateObject(end).getTime()-getDateObject(start).getTime()); log (formatDate(diff,'hh:mm')); log (formatDate(getDateObject(diff),'hh:mm'));ergibt ...

macht mans so wie du, passts ...
macht mans im blockly wirds wie das zweite Ergebnishabs jetzt so umgebaut da bei getMinutes() gehts ohne das getDateObject nicht ..
DifferenzZeit = getDateObject(Zeit_bis).getTime() - getDateObject(Zeit_ab).getTime(); if (DifferenzZeit < 0) DifferenzZeit = DifferenzZeit + 86400000; if (new Date().getTimezoneOffset() == -120) sommerzeit = 3600000; else sommerzeit = 0; switch (Format) { case 'SS:mm': myresult = formatDate(getDateObject(DifferenzZeit - sommerzeit), "hh:mm"); break case 'SS': myresult = getDateObject(DifferenzZeit - sommerzeit).getHours(); break case 'mm': myresult = getDateObject(DifferenzZeit - sommerzeit).getMinutes();
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden