Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [GELÖST] Zeitdifferenz berechnen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    991

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[GELÖST] Zeitdifferenz berechnen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 2 Kommentatoren 725 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • peterk34P Offline
    peterk34P Offline
    peterk34
    schrieb am zuletzt editiert von peterk34
    #1

    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;
    }
    
    peterk34P paul53P 2 Antworten Letzte Antwort
    0
    • peterk34P peterk34

      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;
      }
      
      peterk34P Offline
      peterk34P Offline
      peterk34
      schrieb am zuletzt editiert von
      #2

      könnte das an der Sommerzeit liegen?

      1 Antwort Letzte Antwort
      0
      • peterk34P peterk34

        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;
        }
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

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

        Bild_2022-10-14_120054563.png

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        peterk34P 1 Antwort Letzte Antwort
        0
        • paul53P paul53

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

          Bild_2022-10-14_120054563.png

          peterk34P Offline
          peterk34P Offline
          peterk34
          schrieb am zuletzt editiert von
          #4

          @paul53

          cool

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

          ergibt ...

          a6a6d725-b741-40db-a013-e672538b00ef-image.png

          macht mans so wie du, passts ...
          macht mans im blockly wirds wie das zweite Ergebnis

          paul53P peterk34P 2 Antworten Letzte Antwort
          0
          • peterk34P peterk34

            @paul53

            cool

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

            ergibt ...

            a6a6d725-b741-40db-a013-e672538b00ef-image.png

            macht mans so wie du, passts ...
            macht mans im blockly wirds wie das zweite Ergebnis

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @peterk34 sagte: macht mans im blockly wirds wie das zweite Ergebnis

            Ja, das ist bekannt.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            peterk34P 1 Antwort Letzte Antwort
            0
            • peterk34P peterk34

              @paul53

              cool

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

              ergibt ...

              a6a6d725-b741-40db-a013-e672538b00ef-image.png

              macht mans so wie du, passts ...
              macht mans im blockly wirds wie das zweite Ergebnis

              peterk34P Offline
              peterk34P Offline
              peterk34
              schrieb am zuletzt editiert von peterk34
              #6

              habs 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();
              
              1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @peterk34 sagte: macht mans im blockly wirds wie das zweite Ergebnis

                Ja, das ist bekannt.

                peterk34P Offline
                peterk34P Offline
                peterk34
                schrieb am zuletzt editiert von
                #7

                @paul53

                Dankeschööön

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                631

                Online

                32.6k

                Benutzer

                82.3k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe