NEWS
Blockly Zeit umwandeln
-
Kann mir jemand erklären, warum bei diesem Skript einmal 110 Minuten (korrekt), und einmal 02:50 (falsch) herauskommt?


-
Kann mir jemand erklären, warum bei diesem Skript einmal 110 Minuten (korrekt), und einmal 02:50 (falsch) herauskommt?


@warp-it
DateTime it keine Zeitspanne, sondern ein Objekt (ein Zeitpunkt). Und da schlägt die Zeitzone zu.Im ersten Versuch rechnest Du die Differenz zwischen 2 Zeiten aus und rechnest das Ergebnis in Minuten um.
Alle OK.Im zweiten Versuch berechnest Du ein komplett neues Datum und lässt Dir dessen Uhrzeit anzeigen.
Wäre Deine Differenz hier > 24 Std. würdest Du das mit dieser Formatierung gar nicht erkennen. -
Kann mir jemand erklären, warum bei diesem Skript einmal 110 Minuten (korrekt), und einmal 02:50 (falsch) herauskommt?


@warp-it Leider ist das Wording bei Blockly nicht optimal.
Date Object / Datum-Objektliefert immer das Ergebnis vongetTime()zurück. Also ein numerischen Wert und kein Objekt. Daher kannst Du richtigerweise damit rechnen.Allerdings brauchst das nicht 2x hin und her konvertieren.
to Date/Time "10:00"liefert Dir ja schon den Zeitstempel. Die Differenz wäre bei Dir ja6600000ms. Also6600Sekunden oder110Minuten.Das Problem liegt am Ende. Du gibst als Zeitstempel für ein neues Datum ja den Timestamp in UTC an. Und
6600000ist also der1970.01.01 01:50:00. Allerdings auch in UTC. Jetzt rechnet dir der Baustein das in deine Zeitzone um (UTC+1 aktuell) =02:50 Uhr. Das ist also eine Uhrzeit und keine Differenz in StundenSiehe auch:
-
@warp-it Leider ist das Wording bei Blockly nicht optimal.
Date Object / Datum-Objektliefert immer das Ergebnis vongetTime()zurück. Also ein numerischen Wert und kein Objekt. Daher kannst Du richtigerweise damit rechnen.Allerdings brauchst das nicht 2x hin und her konvertieren.
to Date/Time "10:00"liefert Dir ja schon den Zeitstempel. Die Differenz wäre bei Dir ja6600000ms. Also6600Sekunden oder110Minuten.Das Problem liegt am Ende. Du gibst als Zeitstempel für ein neues Datum ja den Timestamp in UTC an. Und
6600000ist also der1970.01.01 01:50:00. Allerdings auch in UTC. Jetzt rechnet dir der Baustein das in deine Zeitzone um (UTC+1 aktuell) =02:50 Uhr. Das ist also eine Uhrzeit und keine Differenz in StundenSiehe auch:
@haus-automatisierung @Codierknecht
Vielen Dank, jetzt habe ich es gerafft.
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