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. Datums Interpretation Fehlerhaft

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    553

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Datums Interpretation Fehlerhaft

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
10 Beiträge 4 Kommentatoren 647 Aufrufe 3 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.
  • J Offline
    J Offline
    jeg
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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 Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #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 Antworten Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #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 Antworten Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 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

                      871

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      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