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. Aktuelles Datum größer als eingegebenes Datum

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Aktuelles Datum größer als eingegebenes Datum

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 5 Kommentatoren 1.3k Aufrufe 4 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.
  • P Offline
    P Offline
    Pat
    schrieb am zuletzt editiert von
    #1

    Hallo ihr

    Ich möchte gerne ein eingegebenes Datum mit dem Aktuellem Datum vergleichen. Leider klappt dies nicht so ganz.

    schedule("* * * * * *", async function () {
      if ('15.04.2022' <= formatDate(new Date(), "DD.MM.YYYY")) {
        console.log('test');
      }
    });  
    

    Wie würdet ihr dies Lösen ??

    OliverIOO cashC 2 Antworten Letzte Antwort
    0
    • P Pat

      Hallo ihr

      Ich möchte gerne ein eingegebenes Datum mit dem Aktuellem Datum vergleichen. Leider klappt dies nicht so ganz.

      schedule("* * * * * *", async function () {
        if ('15.04.2022' <= formatDate(new Date(), "DD.MM.YYYY")) {
          console.log('test');
        }
      });  
      

      Wie würdet ihr dies Lösen ??

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von OliverIO
      #2

      @pat
      So machst du einen String Vergleich und ist bei einem deutschen Datum nicht für größer kleiner Vergleich geeignet.

      Da das Datum auf deutsch vorliegt musst du es erst parsen damit man es vergleichen kann.
      Entweder du teilst die einzelnen Bestandteile selbst auf und wandelst es über jahr monat Tag in den datentyp date um
      Oder du verwendest eine Bibliothek die das für dich macht.
      Hier bspw mit der weit verbreiteten Bibliothek momentum
      https://stackoverflow.com/questions/48222291/convert-a-german-date-to-iso-date

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      1 Antwort Letzte Antwort
      0
      • P Pat

        Hallo ihr

        Ich möchte gerne ein eingegebenes Datum mit dem Aktuellem Datum vergleichen. Leider klappt dies nicht so ganz.

        schedule("* * * * * *", async function () {
          if ('15.04.2022' <= formatDate(new Date(), "DD.MM.YYYY")) {
            console.log('test');
          }
        });  
        

        Wie würdet ihr dies Lösen ??

        cashC Offline
        cashC Offline
        cash
        Most Active
        schrieb am zuletzt editiert von
        #3

        @pat

        var date_aktuelle_Uhrzeit = getDateObject(formatDate(new Date(), "hh:mm:ss"));
        if(getDateObject('07:30:00') < date_aktuelle_Uhrzeit){
        	log('xxx')
        }
        

        Ich vergleiche Datumswerte miteinander das funktioniert bei mir. Mann kann es aber auch mit Variable.getTime() in eine Zahl umwandeln und dann eine Zahl vergleichen.

        OliverIOO 1 Antwort Letzte Antwort
        1
        • cashC cash

          @pat

          var date_aktuelle_Uhrzeit = getDateObject(formatDate(new Date(), "hh:mm:ss"));
          if(getDateObject('07:30:00') < date_aktuelle_Uhrzeit){
          	log('xxx')
          }
          

          Ich vergleiche Datumswerte miteinander das funktioniert bei mir. Mann kann es aber auch mit Variable.getTime() in eine Zahl umwandeln und dann eine Zahl vergleichen.

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von OliverIO
          #4

          @cash
          du vergleichst keine Datumswerte, sondern Uhrzeiten.
          Da die Darstellung international sehr ähnlich ist (hh:mm:ss), gibt es da weniger Probleme.
          Auch weil bei einer Uhrzeit die höherwertige Angabe jeweils links steht, kann man hier stringvergleich verwenden.

          Die internationale Darstellung eines Datums sieht da schon anders aus
          DE: DD:MM:YY
          EN: YY-MM-DD
          (ganz geschweige die verschiedenen kalender-typen, die es auf der welt gibt, westlich, islam, diverse asiatische)
          (ach zeitzonen fällt mir da auch noch ein)

          Bei einem englischen Datum kann man ebenfalls Stringvergleich machen, bei einem deutschen halt nicht, weil der höherwertige Wert (Jahr) ganz rechts steht.

          Leider kennt der Date.parse-Befehl nur die englischen Formen + ein paar technische Formen

          Hoffnung macht hier das neue temporal-object und i18n object in javascript, welche aktuell in Abstimmung zur Einführung sind.

          Solange, muss man Bibliotheken verwenden oder aufwändig das selbst umsetzen.

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          P 1 Antwort Letzte Antwort
          2
          • OliverIOO OliverIO

            @cash
            du vergleichst keine Datumswerte, sondern Uhrzeiten.
            Da die Darstellung international sehr ähnlich ist (hh:mm:ss), gibt es da weniger Probleme.
            Auch weil bei einer Uhrzeit die höherwertige Angabe jeweils links steht, kann man hier stringvergleich verwenden.

            Die internationale Darstellung eines Datums sieht da schon anders aus
            DE: DD:MM:YY
            EN: YY-MM-DD
            (ganz geschweige die verschiedenen kalender-typen, die es auf der welt gibt, westlich, islam, diverse asiatische)
            (ach zeitzonen fällt mir da auch noch ein)

            Bei einem englischen Datum kann man ebenfalls Stringvergleich machen, bei einem deutschen halt nicht, weil der höherwertige Wert (Jahr) ganz rechts steht.

            Leider kennt der Date.parse-Befehl nur die englischen Formen + ein paar technische Formen

            Hoffnung macht hier das neue temporal-object und i18n object in javascript, welche aktuell in Abstimmung zur Einführung sind.

            Solange, muss man Bibliotheken verwenden oder aufwändig das selbst umsetzen.

            P Offline
            P Offline
            Pat
            schrieb am zuletzt editiert von
            #5

            @oliverio

            Dank dir. Hat mir weiter geholfen. Es war schon zuspät an dem Abend :)
            Werde dann eine Lösung noch rein stellen für die anderen die auch mal das Prob haben.

            P 1 Antwort Letzte Antwort
            0
            • P Pat

              @oliverio

              Dank dir. Hat mir weiter geholfen. Es war schon zuspät an dem Abend :)
              Werde dann eine Lösung noch rein stellen für die anderen die auch mal das Prob haben.

              P Offline
              P Offline
              Pat
              schrieb am zuletzt editiert von
              #6

              Hallo hier meine Lösung

              geht bestimmt noch eleganter :)

              function datum vergleich(){
              let a_tag = parseInt(formatDate(new Date(), "DD"));
              let a_month = parseInt(formatDate(new Date(), "MM"));
              let a_year = parseInt(formatDate(new Date(), "YYYY"));
              let a_datum_us = new Date(new Date(a_year,a_month,a_tag).toDateString());
              let len_date = getState(daten_len).val;
              
                  for (let i = 0; i<len_date; i++){
                  let abholdate = getState(a_daten).val[i].abholdatum.split('.');
                  let tag = parseInt(abholdate[0]);
                  let month = parseInt(abholdate[1]);
                  let year = parseInt(abholdate[2]);
                  let datum_us = new Date(new Date(year,month,tag).toDateString());
              
                      if(datum_us >= a_datum_us){
                          console.log('Das datum ist in der Zukunft');
                   }   
                  }
              }
              
              mickymM 1 Antwort Letzte Antwort
              0
              • BananaJoeB Online
                BananaJoeB Online
                BananaJoe
                Most Active
                schrieb am zuletzt editiert von
                #7

                Also, ein

                tempDatum = "2022-05-22 22:17:00";
                dateinsec = getDateObject(tempDatum).getTime();
                

                gibt die aktuelle Zeit in Millisekunden seit dem 1.1.1970 zurück
                Auf jeden Fall die Zeit als eine Zahl.

                Mit der kann man prima rechnen oder vergleichen

                ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                1 Antwort Letzte Antwort
                0
                • P Pat

                  Hallo hier meine Lösung

                  geht bestimmt noch eleganter :)

                  function datum vergleich(){
                  let a_tag = parseInt(formatDate(new Date(), "DD"));
                  let a_month = parseInt(formatDate(new Date(), "MM"));
                  let a_year = parseInt(formatDate(new Date(), "YYYY"));
                  let a_datum_us = new Date(new Date(a_year,a_month,a_tag).toDateString());
                  let len_date = getState(daten_len).val;
                  
                      for (let i = 0; i<len_date; i++){
                      let abholdate = getState(a_daten).val[i].abholdatum.split('.');
                      let tag = parseInt(abholdate[0]);
                      let month = parseInt(abholdate[1]);
                      let year = parseInt(abholdate[2]);
                      let datum_us = new Date(new Date(year,month,tag).toDateString());
                  
                          if(datum_us >= a_datum_us){
                              console.log('Das datum ist in der Zukunft');
                       }   
                      }
                  }
                  
                  mickymM Offline
                  mickymM Offline
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @pat Wenn Du die moments Bibliothek nutzt dann kannst Du mit after und before über einen Boolean einfach prüfen.

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  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

                  678

                  Online

                  32.6k

                  Benutzer

                  82.2k

                  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