Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Datums Interpretation Fehlerhaft

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Datums Interpretation Fehlerhaft

Scheduled Pinned Locked Moved JavaScript
javascript
10 Posts 4 Posters 694 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    jeg
    wrote on last edited by
    #1

    Ich kämpfe mit fehlerhaften Verhalten bei Datum. Mir ist rätselhaft, was hier eigentlich falsch läuft. Ein Beispiel:

    var lDate1=new Date(2020,1,30,7,52,0);
    var lDate2=new Date("2020-01-30 07:52:00");
    log(lDate1.toString()); // Sun Mar 01 2020 07:52:00 GMT+0100 (GMT+01:00)
    log(lDate2.toString()); // Thu Jan 30 2020 07:52:00 GMT+0100 (GMT+01:00)
    

    Wie man sieht, werden im ersten Fall die Daten falsch interpretiert. Das gleiche passiert auch bei schedule:

    schedule({year:2020,month:1,date:30,hour:11,minute:34,second:0},()=>{
        log((new Date().toString()));
    })
    

    Wenn ich hier das korrekte Datum angebe, dann wird das Ereignis nicht ausgelöst. Weil vermutlich der Monat nicht korrekt interpretiert wird.
    Ob das hiermit im Zusammenhang steht, kann ich zwar nicht sagen, aber ich ebenfalls festgestellt, das bei einem schedule-Auftrag die Wochentagsvorgabe nicht mehr so funktioniert, wie in der Dokumentation bzw. wie sie noch letztes Jahr funktioniert hat. Laut Dokumentation sollte der Sonntag mit 0 oder 7 codiert werden können. Aber die 7 funktioniert nicht mehr seit einem Update Ende Dezember. Zum Leidwesen meiner Tochter, denn ihr Zimmer blieb zweimal kalt, weil der schedule-Auftrag am Sonntag mit 7 nicht ausgeführt wurde.

    HomoranH 1 Reply Last reply
    0
    • J jeg

      Ich kämpfe mit fehlerhaften Verhalten bei Datum. Mir ist rätselhaft, was hier eigentlich falsch läuft. Ein Beispiel:

      var lDate1=new Date(2020,1,30,7,52,0);
      var lDate2=new Date("2020-01-30 07:52:00");
      log(lDate1.toString()); // Sun Mar 01 2020 07:52:00 GMT+0100 (GMT+01:00)
      log(lDate2.toString()); // Thu Jan 30 2020 07:52:00 GMT+0100 (GMT+01:00)
      

      Wie man sieht, werden im ersten Fall die Daten falsch interpretiert. Das gleiche passiert auch bei schedule:

      schedule({year:2020,month:1,date:30,hour:11,minute:34,second:0},()=>{
          log((new Date().toString()));
      })
      

      Wenn ich hier das korrekte Datum angebe, dann wird das Ereignis nicht ausgelöst. Weil vermutlich der Monat nicht korrekt interpretiert wird.
      Ob das hiermit im Zusammenhang steht, kann ich zwar nicht sagen, aber ich ebenfalls festgestellt, das bei einem schedule-Auftrag die Wochentagsvorgabe nicht mehr so funktioniert, wie in der Dokumentation bzw. wie sie noch letztes Jahr funktioniert hat. Laut Dokumentation sollte der Sonntag mit 0 oder 7 codiert werden können. Aber die 7 funktioniert nicht mehr seit einem Update Ende Dezember. Zum Leidwesen meiner Tochter, denn ihr Zimmer blieb zweimal kalt, weil der schedule-Auftrag am Sonntag mit 7 nicht ausgeführt wurde.

      HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #2

      @jeg sagte in Datums Interpretation Fehlerhaft:

      Mir ist rätselhaft, was hier eigentlich falsch läuft

      Hab zwar von js nicht die Ahnung, aber das hier ist für mich eindeutig:

      var lDate1=new Date(2020,1,30,7,52,0); wird folgendermassen zerlegt:

      • 2020 Jahr, korrekt!
      • 1 => Tag: 01.
      • 30 => Monat: 03 (den 30 gibt es ja nicht

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      C J 2 Replies Last reply
      0
      • HomoranH Homoran

        @jeg sagte in Datums Interpretation Fehlerhaft:

        Mir ist rätselhaft, was hier eigentlich falsch läuft

        Hab zwar von js nicht die Ahnung, aber das hier ist für mich eindeutig:

        var lDate1=new Date(2020,1,30,7,52,0); wird folgendermassen zerlegt:

        • 2020 Jahr, korrekt!
        • 1 => Tag: 01.
        • 30 => Monat: 03 (den 30 gibt es ja nicht
        C Offline
        C Offline
        CruziX
        wrote on last edited by
        #3

        @Homoran Nur, dass die Reihenfolge eig Jahr, Monat und Tag ist.
        Mir ist selbigen Verhalten schon aufgefallen mit einfachem new Date();
        Wenn ich hierbei date.getMonth(); ausführe bekomme ich auch immer einen falschen Monat.
        Da scheint glaube generell was nicht zu stimmen.
        Konnte ich in meinem Fall mit formatDate lösen

        1 Reply Last reply
        0
        • HomoranH Homoran

          @jeg sagte in Datums Interpretation Fehlerhaft:

          Mir ist rätselhaft, was hier eigentlich falsch läuft

          Hab zwar von js nicht die Ahnung, aber das hier ist für mich eindeutig:

          var lDate1=new Date(2020,1,30,7,52,0); wird folgendermassen zerlegt:

          • 2020 Jahr, korrekt!
          • 1 => Tag: 01.
          • 30 => Monat: 03 (den 30 gibt es ja nicht
          J Offline
          J Offline
          jeg
          wrote on last edited by
          #4

          @Homoran
          Manchmal ist man echt blind. Danke. Aber ganz so ist es auch wieder nicht

          new Date(year, monthIndex [, day [, hour [, minutes [, seconds [, milliseconds]]]]]);

          Es kommt schon zuerst der Monat, aber anders, als ich erwartet hatte:

          Das Argument monthIndex ist 0-basiert. Das bedeutet, dass 0 = Januar und 11 = Dezember ist.
          Anmerkung: Wenn Date als Konstruktor mit mehr als einem Argument aufgerufen wird und die übergebenen Werte größer als ihr logischer Bereich sind (z. B. 13 wird als Monat genutzt oder 70 wird als Minutenwert eingesetzt) wird der angrenzende Wert angepasst. Z. B. ist new Date(2013, 13, 1) äquivalent zu new Date(2014, 1,)

          C 1 Reply Last reply
          1
          • J jeg

            @Homoran
            Manchmal ist man echt blind. Danke. Aber ganz so ist es auch wieder nicht

            new Date(year, monthIndex [, day [, hour [, minutes [, seconds [, milliseconds]]]]]);

            Es kommt schon zuerst der Monat, aber anders, als ich erwartet hatte:

            Das Argument monthIndex ist 0-basiert. Das bedeutet, dass 0 = Januar und 11 = Dezember ist.
            Anmerkung: Wenn Date als Konstruktor mit mehr als einem Argument aufgerufen wird und die übergebenen Werte größer als ihr logischer Bereich sind (z. B. 13 wird als Monat genutzt oder 70 wird als Minutenwert eingesetzt) wird der angrenzende Wert angepasst. Z. B. ist new Date(2013, 13, 1) äquivalent zu new Date(2014, 1,)

            C Offline
            C Offline
            CruziX
            wrote on last edited by CruziX
            #5

            @jeg Gut zu wissen, da lag wohl auch mein Fehler.
            Also muss man theoretisch immer beim Monat einen drauf addieren?

            Auch nett zu lesen:
            https://stackoverflow.com/a/41992352

            J 1 Reply Last reply
            0
            • C CruziX

              @jeg Gut zu wissen, da lag wohl auch mein Fehler.
              Also muss man theoretisch immer beim Monat einen drauf addieren?

              Auch nett zu lesen:
              https://stackoverflow.com/a/41992352

              J Offline
              J Offline
              jeg
              wrote on last edited by
              #6

              @CruziX
              Wie man es nimmt. Bei der Vorgabe muss man einen Monat abziehen. Für den 30.1.2020 nicht

              new Date(2020,01,30)
              

              sondern

              new Date(2020,0,30)
              

              klingt für mich eindeutig falsch, weil nach der Lesart müssten ja auch der Tag 0-basiert sein. Dieser ist aber 1 basiert.
              Wie dem auch sei, so ist es bei Javascript laut Dokumentation. Wieder was dazu gelernt.

              C 1 Reply Last reply
              1
              • J jeg

                @CruziX
                Wie man es nimmt. Bei der Vorgabe muss man einen Monat abziehen. Für den 30.1.2020 nicht

                new Date(2020,01,30)
                

                sondern

                new Date(2020,0,30)
                

                klingt für mich eindeutig falsch, weil nach der Lesart müssten ja auch der Tag 0-basiert sein. Dieser ist aber 1 basiert.
                Wie dem auch sei, so ist es bei Javascript laut Dokumentation. Wieder was dazu gelernt.

                C Offline
                C Offline
                CruziX
                wrote on last edited by
                #7

                @jeg Ist echt gut zu wissen, genau der Fehler ist mir vor Tagen nämlich auch passiert.
                Als Java/Javascriptler wäre einem das sicherlich sofort aufgefallen :D

                1 Reply Last reply
                0
                • HomoranH Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #8

                  solltet ihr euch einig sein, dass das ein Fehler ist (wie gesagt ich habe keine Ahnung) dann bitte ein issue im js-Adapter aufmachen

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  J AlCalzoneA 2 Replies Last reply
                  0
                  • HomoranH Homoran

                    solltet ihr euch einig sein, dass das ein Fehler ist (wie gesagt ich habe keine Ahnung) dann bitte ein issue im js-Adapter aufmachen

                    J Offline
                    J Offline
                    jeg
                    wrote on last edited by
                    #9

                    @Homoran Das ist kein Fehler im Adapter sondern ein Fehler in Javascript selbst. So ist es auch in jedem Browser und Website. Wenn man im Browser
                    new Date(2020,1,30) eingibt, dann kommt Sun Mar 01 2020 00:00:00 GMT+0100 (Mitteleuropäische Normalzeit) zurück.

                    1 Reply Last reply
                    0
                    • HomoranH Homoran

                      solltet ihr euch einig sein, dass das ein Fehler ist (wie gesagt ich habe keine Ahnung) dann bitte ein issue im js-Adapter aufmachen

                      AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      wrote on last edited by
                      #10

                      @Homoran Ich bin mir relativ sicher, dass die entsprechenden Hilfen (z.B. CRON-Designer) das bereits berücksichtigen.

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      305

                      Online

                      32.7k

                      Users

                      82.4k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe