Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Zeiten filtern Array

    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

    Zeiten filtern Array

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @Diamand2k22 last edited by

      @diamand2k22 sagte: rauskommen tut dabei

      Ja, alle Zeiten sind >= 1 (Uhr).
      Was soll das Ergebnis sein?

      D 1 Reply Last reply Reply Quote 0
      • D
        Diamand2k22 @paul53 last edited by Diamand2k22

        @paul53

        so sieht der Filter aus: tibberPoihigh = await filterZeitVonXXToXX(tibberPoiAll, _sunup, nowhour);

        _sunup = Zeit Sonnenaufgang z.B. 9:00
        nowhour ist die aktuelle Zeit z.B. 01:00

        es sollen jetzt die Zeiten aus dem Array zwischen 1 Uhr und 9 Uhr ausgegeben werden, aber es werden auch die Zeiten nach 9 Uhr ausgegeben.

        wie gesagt, wenn nowhour 23:00 ist, dann funktioniert der Filter bis 9:00 Uhr, wenn nowhour nach 0:00 Uhr dann werden auch Zeiten größer 9 Uhr ausgegeben

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Diamand2k22 last edited by

          @diamand2k22 sagte: Zeiten aus dem Array zwischen 1 Uhr und 9 Uhr

          Versuche es mal so:

          if(parseInt(zeit2) > parseInt(zeit1)) {
              if(startTime <= parseInt(zeit1) || startTime >= parseInt(zeit2)) newArray.push(arrZeit[i]);
          } else {
              if(startTime <= parseInt(zeit1) && startTime >= parseInt(zeit2)) newArray.push(arrZeit[i]);
          }
          
          D 1 Reply Last reply Reply Quote 0
          • D
            Diamand2k22 @paul53 last edited by Diamand2k22

            @paul53

            ich glaub das war es:

            tibberPoihigh = await filterZeitVonXXToXX(tibberPoiAll, '09:00', '01:00');
            
            [ [ 0.3433, '08:00', '08:30' ], [ 0.3356, '07:00', '07:30' ], [ 0.3356, '07:30', '08:00' ], [ 0.3194, '06:00', '06:30' ], [ 0.3194, '06:30', '07:00' ], [ 0.3148, '05:00', '05:30' ], [ 0.3148, '05:30', '06:00' ], [ 0.3147, '01:00', '01:30' ], [ 0.3147, '01:30', '02:00' ], [ 0.3142, '02:00', '02:30' ], [ 0.3142, '02:30', '03:00' ], [ 0.3097, '04:00', '04:30' ], [ 0.3097, '04:30', '05:00' ], [ 0.3083, '03:00', '03:30' ], [ 0.3083, '03:30', '04:00' ] ]
            
            tibberPoihigh = await filterZeitVonXXToXX(tibberPoiAll, '09:00', '21:00');
            
            [ [ 0.3486, '22:00', '22:30' ], [ 0.3486, '22:30', '23:00' ], [ 0.3454, '21:00', '21:30' ], [ 0.3454, '21:30', '22:00' ], [ 0.3433, '08:00', '08:30' ], [ 0.3408, '23:00', '23:30' ], [ 0.3408, '23:30', '00:00' ], [ 0.3356, '07:00', '07:30' ], [ 0.3356, '07:30', '08:00' ], [ 0.3232, '00:00', '00:30' ], [ 0.3232, '00:30', '01:00' ], [ 0.3194, '06:00', '06:30' ], [ 0.3194, '06:30', '07:00' ], [ 0.3148, '05:00', '05:30' ], [ 0.3148, '05:30', '06:00' ], [ 0.3147, '01:00', '01:30' ], [ 0.3147, '01:30', '02:00' ], [ 0.3142, '02:00', '02:30' ], [ 0.3142, '02:30', '03:00' ], [ 0.3097, '04:00', '04:30' ], [ 0.3097, '04:30', '05:00' ], [ 0.3083, '03:00', '03:30' ], [ 0.3083, '03:30', '04:00' ] ]
            

            jetzt sieht's gut aus! vielen Dank für deine Hilfe!

            1 Reply Last reply Reply Quote 0
            • D
              Diamand2k22 @paul53 last edited by Diamand2k22

              @paul53 said in Zeiten filtern Array:

              @diamand2k22 sagte: die kleinste Uhrzeit

              Das funktioniert z.B. mit einem String-Vergleich.

              const arr = [ [ 0.2325, '23:00', '23:30' ], [ 0.2425, '03:00', '03:30' ], [ 0.2425, '03:30', '04:00' ], [ 0.2434, '02:00', '02:30' ], [ 0.2434, '02:30', '03:00' ], [ 0.2492, '04:00', '04:30' ] ];
              
              let first = '23:59';
              for(const ele of arr) {
                  if(ele[1] < first) first = ele[1];
              };
              log(first);
              

              Hallo @paul53, ich habe hier selbiges Problem wie bei dem Skript davor, dass er Zeiten, die vor 00:00 Uhr sind, nicht berücksichtig. Die Variable first ist bei dem Array 00:00, müsste aber 23:00 sein. Kannst du mir hier weiterhelfen?

              Danke dir!

              1 Reply Last reply Reply Quote 0
              • D
                Diamand2k22 last edited by

                @paul53

                bräuchte nochmal deine Hilfe.

                folgendes Array:

                [ 0.3488, '03:00', '03:30' ],
                [ 0.3488, '03:30', '04:00' ],
                [ 0.3497, '02:00', '02:30' ],
                [ 0.3497, '02:30', '03:00' ]
                

                der code ist:

                let first = '23:59';
                for(const ele of arr) {
                    if(ele[1] < first) first = ele[1];
                };
                

                er gibt als Uhrzeit 02:30 Uhr aus, normal sollte es doch 02:00 Uhr sein oder?

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Diamand2k22 last edited by paul53

                  @diamand2k22 sagte; sollte es doch 02:00 Uhr sein oder?

                  Ja, es sollte die erste Zeit genommen werden, denn sie ist kleiner.

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    Diamand2k22 @paul53 last edited by Diamand2k22

                    @paul53

                    habe gerade nochmal im Log geschaut,

                    wenn das Array so aussieht:

                      [ 0.3488, '03:00', '03:30' ],
                      [ 0.3488, '03:30', '04:00' ],
                      [ 0.3497, '02:00', '02:30' ]
                    

                    dann gibt er 02:00 aus

                    wenn das Array aber so aussieht:

                    [ 0.3488, '03:00', '03:30' ],
                    [ 0.3488, '03:30', '04:00' ],
                    [ 0.3497, '02:00', '02:30' ],
                    [ 0.3497, '02:30', '03:00' ]
                    
                    

                    dann gibt er 02:30 Uhr aus.

                    anscheinend gibt es ein Problem wenn 2x 02:30 Uhr im Array steht

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      ticaki Developer @Diamand2k22 last edited by ticaki

                      @diamand2k22
                      Bildschirmfoto 2025-01-31 um 23.15.31.png

                      const arr = [[ 0.3488, '03:00', '03:30' ],
                      [ 0.3488, '03:30', '04:00' ],
                      [ 0.3497, '02:00', '02:30' ],
                      [ 0.3497, '02:30', '03:00' ]]
                      
                      let first = '23:59';
                      for(const ele of arr) {
                          //@ts-ignore
                          if(ele[1] < first) first = ele[1];
                      };
                      log(first)
                      

                      ignoriere das ts-ignore 🙂

                      javascript.0	23:15:11.732	info	02:00
                      
                      D 1 Reply Last reply Reply Quote 0
                      • D
                        Diamand2k22 @ticaki last edited by Diamand2k22

                        @ticaki @paul53

                        hab den Fehler bei mir im Code gefunden, danke euch für eure Hilfe!

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        567
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        4
                        53
                        2227
                        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