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. Prüfen des aktuellen Datum auf Bereich

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
    946

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Prüfen des aktuellen Datum auf Bereich

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 3 Kommentatoren 250 Aufrufe 1 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.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von Ben1983
    #1

    Hallo, wie kann ich denn am einfachsten Prüfen, ob das aktuelle Datum zwischen zwei Bereichen liegt?

    Ich möchte dabei kein wirkliches Datum mit Jahr zum Prüfen angeben, sondern lediglich so etwas bspw.:

    dateIsBetween(10.3.,15.11);
    

    oder:

    dateIsBetween(16.11.,9.3);
    

    also nur Startdatum mit tag und Monat und das gleiche für das Enddatum.

    Edit:
    Also hoffe es ist verständlich, was ich erreichen möchte.

    mickymM paul53P 2 Antworten Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo, wie kann ich denn am einfachsten Prüfen, ob das aktuelle Datum zwischen zwei Bereichen liegt?

      Ich möchte dabei kein wirkliches Datum mit Jahr zum Prüfen angeben, sondern lediglich so etwas bspw.:

      dateIsBetween(10.3.,15.11);
      

      oder:

      dateIsBetween(16.11.,9.3);
      

      also nur Startdatum mit tag und Monat und das gleiche für das Enddatum.

      Edit:
      Also hoffe es ist verständlich, was ich erreichen möchte.

      mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      @ben1983 Nutz halte eine Bibliothek. Ein Nachfolger der moments-Bibliothek ist dayjs

      const dayjs = require('dayjs');
      var isBetween = require('dayjs/plugin/isBetween');
      dayjs.extend(isBetween);
      var customParseFormat = require('dayjs/plugin/customParseFormat');
      dayjs.extend(customParseFormat);
      console.log(dayjs().isBetween(dayjs('10.3.','D.M.'), dayjs('5.11.','D.M.'), 'day', '[]'));
      

      2caa31ee-60b4-45b9-8db3-896c0fc82669-image.png

      Man kann natürlich auch das Rad neu erfinden. ;)

      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.

      Ben1983B 1 Antwort Letzte Antwort
      0
      • Ben1983B Ben1983

        Hallo, wie kann ich denn am einfachsten Prüfen, ob das aktuelle Datum zwischen zwei Bereichen liegt?

        Ich möchte dabei kein wirkliches Datum mit Jahr zum Prüfen angeben, sondern lediglich so etwas bspw.:

        dateIsBetween(10.3.,15.11);
        

        oder:

        dateIsBetween(16.11.,9.3);
        

        also nur Startdatum mit tag und Monat und das gleiche für das Enddatum.

        Edit:
        Also hoffe es ist verständlich, was ich erreichen möchte.

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

        @ben1983 sagte: dateIsBetween(10.3.,15.11);

        Wenn man erst den Monat und danach den Tag angibt (zweistellig), kann man einen Stringvergleich machen.

        const today = formatDate(new Date(), 'MM.DD');
        const dateIsBetwenn = today >= '03.10' && today <= '11.15')
        

        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

        Ben1983B 2 Antworten Letzte Antwort
        0
        • paul53P paul53

          @ben1983 sagte: dateIsBetween(10.3.,15.11);

          Wenn man erst den Monat und danach den Tag angibt (zweistellig), kann man einen Stringvergleich machen.

          const today = formatDate(new Date(), 'MM.DD');
          const dateIsBetwenn = today >= '03.10' && today <= '11.15')
          
          Ben1983B Offline
          Ben1983B Offline
          Ben1983
          schrieb am zuletzt editiert von
          #4

          @paul53 sagte in Prüfen des aktuellen Datum auf Bereich:

                                                                                                                                      const today = formatDate(new Date(), 'MM.DD');                                                                                                                                                                            const dateIsBetwenn = today >= '03.10' && today <= '11.15')                                            
          

          OK, das klingt gut und logisch, aber man muss noch abfragen rein bringen,
          denn der start kann ja auch am 11.11. sein und das ende am 01.01.

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @ben1983 sagte: dateIsBetween(10.3.,15.11);

            Wenn man erst den Monat und danach den Tag angibt (zweistellig), kann man einen Stringvergleich machen.

            const today = formatDate(new Date(), 'MM.DD');
            const dateIsBetwenn = today >= '03.10' && today <= '11.15')
            
            Ben1983B Offline
            Ben1983B Offline
            Ben1983
            schrieb am zuletzt editiert von Ben1983
            #5

            @paul53 sagte in Prüfen des aktuellen Datum auf Bereich:

            const today = formatDate(new Date(), 'MM.DD');

            SO ist es in allen Varianten abgefngen..

            Danke

            function dateIsBetween(startday, startmonth, endday, endmonth){
                const today = formatDate(new Date(), 'MM.DD');
                const startdate = formatDate(new Date(new Date().getFullYear(),startmonth - 1, startday), 'MM.DD');
                const enddate = formatDate(new Date(new Date().getFullYear(),endmonth - 1, endday), 'MM.DD');
                // Wenn das Enddatum >= dem Start ist, so sind sie aus dem gleichen Jahr
                if(enddate >= startdate){
                    return (today >= startdate && today <= enddate);
                }
                // An sonsten, sind es unterschiedliche Jahre
                else{
                    return (today >= startdate && today >= enddate ||
                            today <= startdate && today <= enddate);
                }
            }
            

            Edit:
            Ich überlege gerade, ob ich nicht doch einfach eine Eingabe des Start und Enddatums in der Vis mache.
            Da müsste man allerdings wieder das Jahr angeben und bspw. wenn das enddatum überschritten wird, um ein jahr addieren.... dann würde es sich selbst "incrementieren" und nicht am Jahr hängen.

            1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @ben1983 Nutz halte eine Bibliothek. Ein Nachfolger der moments-Bibliothek ist dayjs

              const dayjs = require('dayjs');
              var isBetween = require('dayjs/plugin/isBetween');
              dayjs.extend(isBetween);
              var customParseFormat = require('dayjs/plugin/customParseFormat');
              dayjs.extend(customParseFormat);
              console.log(dayjs().isBetween(dayjs('10.3.','D.M.'), dayjs('5.11.','D.M.'), 'day', '[]'));
              

              2caa31ee-60b4-45b9-8db3-896c0fc82669-image.png

              Man kann natürlich auch das Rad neu erfinden. ;)

              Ben1983B Offline
              Ben1983B Offline
              Ben1983
              schrieb am zuletzt editiert von
              #6

              @mickym so wie es aussieht macht die datejs nichts anderes,
              als den von @paul53 beschriebenen Stringvergleich.
              Oder berücksichtigt es noch die Jahresübergänge?

              Ich habe mich jetzt entschieder, das Date Widged aus der Vis zu nutzen.
              Daraus ergibt sich bspw.
              "2023-11-05"
              Diesen String übergebe ich meiner Funktion und vergleiche so sie Daten.
              wird das enddatum überschritten, so werden ein Jahr vor datiert. klappt super.

              // Funktion zum Prüfen, ob der aktuelle Moment zwischen zwei Daten ist
              function nowIsBetween(startdate, enddate, useCompleteDeate){
                  const today = new Date();
                  const start = new Date(startdate);
                  const end = new Date(enddate);
                  if(useCompleteDeate){
                      start.setHours(0);
                      start.setMinutes(0);
                      start.setSeconds(0);
                      end.setHours(23);
                      end.setMinutes(59);
                      end.setSeconds(59);
                  }
                  return (today >= start && today <= end);
              }
              
              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

              669

              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