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. JavaScript
  5. Zeiten filtern Array

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

Zeiten filtern Array

Geplant Angeheftet Gesperrt Verschoben JavaScript
53 Beiträge 4 Kommentatoren 4.7k Aufrufe 2 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.
  • D Diamand2k22

    @paul53

    Hallo Paul,

    habs mal getestet, aber immer noch selbes Problem.
    hier mein Test Array

        tibberPoiAll = [[0.3659,"18:00","18:30"],[0.3659,"18:30","19:00"],[0.3657,"17:00","17:30"],[0.3657,"17:30","18:00"],[0.3631,"19:00","19:30"],[0.3631,"19:30","20:00"],[0.3559,"16:00","16:30"],[0.3559,"16:30","17:00"],[0.3553,"20:00","20:30"],[0.3553,"20:30","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"]]
    
        tibberPoihigh = await filterZeitVonXXToXX(tibberPoiAll, '09:00', '01:00');
    

    rauskommen tut dabei

    [ [ 0.3659, '18:00', '18:30' ], [ 0.3659, '18:30', '19:00' ], [ 0.3657, '17:00', '17:30' ], [ 0.3657, '17:30', '18:00' ], [ 0.3631, '19:00', '19:30' ], [ 0.3631, '19:30', '20:00' ], [ 0.3559, '16:00', '16:30' ], [ 0.3559, '16:30', '17:00' ], [ 0.3553, '20:00', '20:30' ], [ 0.3553, '20:30', '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' ] ]
    

    wenn ich die Zeit vor 0 Uhr rein nehme, wird richtig gefiltert, also in dem Fall von 21:00 Uhr bis 9:00 Uhr

        tibberPoihigh = await filterZeitVonXXToXX(tibberPoiAll, '09:00', '21:00');
    

    Ausgabe:

    [ [ 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' ] ]
    
    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #44

    @diamand2k22 sagte: rauskommen tut dabei

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

    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

    D 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @diamand2k22 sagte: rauskommen tut dabei

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

      D Offline
      D Offline
      Diamand2k22
      schrieb am zuletzt editiert von Diamand2k22
      #45

      @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

      paul53P 1 Antwort Letzte Antwort
      0
      • D 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

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

        @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]);
        }
        

        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

        D 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @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 Offline
          D Offline
          Diamand2k22
          schrieb am zuletzt editiert von Diamand2k22
          #47

          @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 Antwort Letzte Antwort
          0
          • paul53P paul53

            @diamand2k22 sagte: die kleinste Uhrzeit

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

            const arr = [ [ 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);
            
            D Offline
            D Offline
            Diamand2k22
            schrieb am zuletzt editiert von Diamand2k22
            #48

            @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 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              Diamand2k22
              schrieb am zuletzt editiert von
              #49

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

              paul53P 1 Antwort Letzte Antwort
              0
              • D Diamand2k22

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

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

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

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

                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

                D 1 Antwort Letzte Antwort
                0
                • paul53P paul53

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

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

                  D Offline
                  D Offline
                  Diamand2k22
                  schrieb am zuletzt editiert von Diamand2k22
                  #51

                  @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 Antwort Letzte Antwort
                  0
                  • D 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 Nicht stören
                    T Nicht stören
                    ticaki
                    schrieb am zuletzt editiert von ticaki
                    #52

                    @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
                    

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    D 1 Antwort Letzte Antwort
                    0
                    • T 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 Offline
                      D Offline
                      Diamand2k22
                      schrieb am zuletzt editiert von Diamand2k22
                      #53

                      @ticaki @paul53

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

                      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

                      804

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      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