Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Zeit umwandeln

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly Zeit umwandeln

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      warp-it last edited by warp-it

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

      9084b2f9-39ec-490d-bbd2-6f8a408afd78-image.png

      344b43ba-3f39-49d8-af85-5d180a97c0ed-image.png

      Blockly-Skript.txt

      Codierknecht haus-automatisierung 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @warp-it last edited by

        @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.

        1 Reply Last reply Reply Quote 1
        • haus-automatisierung
          haus-automatisierung Developer Most Active @warp-it last edited by

          @warp-it Leider ist das Wording bei Blockly nicht optimal. Date Object / Datum-Objekt liefert immer das Ergebnis von getTime() 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 ja 6600000 ms. Also 6600 Sekunden oder 110 Minuten.

          Das Problem liegt am Ende. Du gibst als Zeitstempel für ein neues Datum ja den Timestamp in UTC an. Und 6600000 ist also der 1970.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 Stunden

          Siehe auch:

          • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime
          W 1 Reply Last reply Reply Quote 2
          • W
            warp-it @haus-automatisierung last edited by

            @haus-automatisierung @Codierknecht

            Vielen Dank, jetzt habe ich es gerafft.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            799
            Online

            31.9k
            Users

            80.3k
            Topics

            1.3m
            Posts

            3
            4
            931
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo