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. Blockly
  5. Anzahl der Tage nach Datum

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    582

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

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

Anzahl der Tage nach Datum

Scheduled Pinned Locked Moved Blockly
48 Posts 8 Posters 5.9k Views 10 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.
  • S srkonus

    @mkshb said in Anzahl der Tage nach Datum:

    Moin @theduke,

    konvertiere beide Daten in Millisekunden, rechne die Differenz aus und teile durch 86400000.
    (26.04.2022 = 16509710270000) - (27.08.2021 = 1630015200000) = 20908800000
    20908800000 / 86400000 = 242 Tage

    Blockly:

    <block xmlns="https://developers.google.com/blockly/xml" type="math_arithmetic" id="d.u7_y%xUhEXN5jEXMUd" x="-424.7499999999998" y="-383">
      <field name="OP">DIVIDE</field>
      <value name="A">
        <shadow type="math_number" id="5_SP@j1G$ZaS7t|_FS=9">
          <field name="NUM">1</field>
        </shadow>
        <block type="variables_get" id="|mNOgikc3~Cz^~a;*8``">
          <field name="VAR" id=":/OtTgN{LMHO~q|giE:P">Diff</field>
        </block>
      </value>
      <value name="B">
        <shadow type="math_number" id=",WYKnG6LK3P1TM[n9QP}">
          <field name="NUM">86400000</field>
        </shadow>
      </value>
    </block>
    

    Wie setze bzw. rechne ich ein bestimmtes Datum in Millisekunden um?

    mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by mickym
    #15

    @srkonus sagte in Anzahl der Tage nach Datum:

    @mkshb said in Anzahl der Tage nach Datum:

    Moin @theduke,

    konvertiere beide Daten in Millisekunden, rechne die Differenz aus und teile durch 86400000.
    (26.04.2022 = 16509710270000) - (27.08.2021 = 1630015200000) = 20908800000
    20908800000 / 86400000 = 242 Tage

    Blockly:

    <block xmlns="https://developers.google.com/blockly/xml" type="math_arithmetic" id="d.u7_y%xUhEXN5jEXMUd" x="-424.7499999999998" y="-383">
      <field name="OP">DIVIDE</field>
      <value name="A">
        <shadow type="math_number" id="5_SP@j1G$ZaS7t|_FS=9">
          <field name="NUM">1</field>
        </shadow>
        <block type="variables_get" id="|mNOgikc3~Cz^~a;*8``">
          <field name="VAR" id=":/OtTgN{LMHO~q|giE:P">Diff</field>
        </block>
      </value>
      <value name="B">
        <shadow type="math_number" id=",WYKnG6LK3P1TM[n9QP}">
          <field name="NUM">86400000</field>
        </shadow>
      </value>
    </block>
    

    Wie setze bzw. rechne ich ein bestimmtes Datum in Millisekunden um?

    Ansonsten wenn Du lieber selber rechnen willst über die Methode von @mkshb - habe ich Dir im Blockly noch die andere Möglichkeiten angehängt (aktuelles Datum in ms und bestimmtes Datum in ms):
    807ef671-97b4-4e09-83a5-280a4071e1ad-image.png

    Du siehst auch hier kommt beim Datum vom 27.8.2021 leicht auf die Millisekunden:
    1630015200000 und damit auch auf 319 Tage, wie die duration Bibliothek ausgibt. Wenn Du also lieber selbst rechnen willst, kannst Du es auch ohne die Bibliothek easy tun.

    <xml xmlns="https://developers.google.com/blockly/xml">
     <variables>
       <variable id="m:)gvKQ,tVbet;-TV{5b">seit</variable>
     </variables>
     <block type="procedures_defcustomreturn" id="X!%2r7kCe4uVH:d}`32Y" x="-562" y="38">
       <mutation statements="false">
         <arg name="seit" varid="m:)gvKQ,tVbet;-TV{5b"></arg>
       </mutation>
       <field name="NAME">Zeitraum_Tage</field>
       <field name="SCRIPT">dmFyIER1cmF0aW9uID0gcmVxdWlyZSgiZHVyYXRpb24iKTsKCnZhciBkdXJhdGlvbiA9IG5ldyBEdXJhdGlvbihuZXcgRGF0ZShzZWl0KSk7CnJldHVybiBkdXJhdGlvbi5kYXlzOw==</field>
       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
     </block>
     <block type="debug" id="Bb(Yc|=`6FU{/4[.C=1X" x="-562" y="88">
       <field name="Severity">log</field>
       <value name="TEXT">
         <shadow type="text" id="|m|X_N`BiZ%InvfDMMwK">
           <field name="TEXT">test</field>
         </shadow>
         <block type="procedures_callcustomreturn" id="dQ61jfAA2hmi!M1mDqQo">
           <mutation name="Zeitraum_Tage">
             <arg name="seit"></arg>
           </mutation>
           <value name="ARG0">
             <block type="lists_split" id="TD,]mjs?,-6xPS{($oSZ">
               <mutation mode="SPLIT"></mutation>
               <field name="MODE">SPLIT</field>
               <value name="INPUT">
                 <block type="text" id=".0|RaEZ@@!1(Ej099i-*">
                   <field name="TEXT">2021,8,27</field>
                 </block>
               </value>
               <value name="DELIM">
                 <shadow type="text" id="#X%yFw`93sg7E2$ILJ_N">
                   <field name="TEXT">,</field>
                 </shadow>
               </value>
             </block>
           </value>
         </block>
       </value>
       <next>
         <block type="debug" id="A7l5f!#=y2PF72?N3J?z">
           <field name="Severity">log</field>
           <value name="TEXT">
             <shadow type="text" id="+h!]x636x85Y2qVC2uu]">
               <field name="TEXT">test</field>
             </shadow>
             <block type="time_get" id="],CE@TAC+Oh8FUEA$2Y9">
               <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
               <field name="OPTION">object</field>
             </block>
           </value>
           <next>
             <block type="debug" id="g{Cu^@+4jhqS=hSeGH~7">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id="QqI0_2FCqpwW*D_jsC||">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="convert_from_date" id="[oKNLVL,k4)^s/zD0-un">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                   <field name="OPTION">object</field>
                   <value name="VALUE">
                     <block type="text" id="_O^?86yj_3.I$~FYD%*7">
                       <field name="TEXT">2021/8/27</field>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="debug" id=":0fWS(#KtbA(kJ=dI+7L">
                   <field name="Severity">log</field>
                   <value name="TEXT">
                     <shadow type="text" id="M^i[sWHMx~peyj/P*X$,">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="math_round" id="=gloh%t#7j(;OS_Y+;Mp">
                       <field name="OP">ROUNDDOWN</field>
                       <value name="NUM">
                         <shadow type="math_number" id="xN484bNwbqTuVYC7|Z03">
                           <field name="NUM">3.1</field>
                         </shadow>
                         <block type="math_arithmetic" id="tG0~nBi^eEhKj[c~eWFa">
                           <field name="OP">DIVIDE</field>
                           <value name="A">
                             <shadow type="math_number" id="E(rxg^}]Pw[!I106|Ll:">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="math_arithmetic" id="xL1)6P%OmSlVH{6=){(f">
                               <field name="OP">MINUS</field>
                               <value name="A">
                                 <shadow type="math_number" id="u`j1SY@jpw.]hVP#lUW4">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="time_get" id="[JsB^D7A]Y{X$75E{(fT">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                   <field name="OPTION">object</field>
                                 </block>
                               </value>
                               <value name="B">
                                 <shadow type="math_number" id="jwV97|MDF+K*dFN*#@u%">
                                   <field name="NUM">1</field>
                                 </shadow>
                                 <block type="convert_from_date" id="vlZ[bRTj6!r;NV+d!x[o">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                   <field name="OPTION">object</field>
                                   <value name="VALUE">
                                     <block type="text" id="D6.e]0/+UTZ)aPTqKOvn">
                                       <field name="TEXT">2021/8/27</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <value name="B">
                             <shadow type="math_number" id="FI2=Q!iks[mhY!SgR/=v">
                               <field name="NUM">86400000</field>
                             </shadow>
                           </value>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </next>
             </block>
           </next>
         </block>
       </next>
     </block>
    </xml>
    

    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.

    S 1 Reply Last reply
    0
    • mickymM mickym

      @srkonus sagte in Anzahl der Tage nach Datum:

      @mkshb said in Anzahl der Tage nach Datum:

      Moin @theduke,

      konvertiere beide Daten in Millisekunden, rechne die Differenz aus und teile durch 86400000.
      (26.04.2022 = 16509710270000) - (27.08.2021 = 1630015200000) = 20908800000
      20908800000 / 86400000 = 242 Tage

      Blockly:

      <block xmlns="https://developers.google.com/blockly/xml" type="math_arithmetic" id="d.u7_y%xUhEXN5jEXMUd" x="-424.7499999999998" y="-383">
        <field name="OP">DIVIDE</field>
        <value name="A">
          <shadow type="math_number" id="5_SP@j1G$ZaS7t|_FS=9">
            <field name="NUM">1</field>
          </shadow>
          <block type="variables_get" id="|mNOgikc3~Cz^~a;*8``">
            <field name="VAR" id=":/OtTgN{LMHO~q|giE:P">Diff</field>
          </block>
        </value>
        <value name="B">
          <shadow type="math_number" id=",WYKnG6LK3P1TM[n9QP}">
            <field name="NUM">86400000</field>
          </shadow>
        </value>
      </block>
      

      Wie setze bzw. rechne ich ein bestimmtes Datum in Millisekunden um?

      Ansonsten wenn Du lieber selber rechnen willst über die Methode von @mkshb - habe ich Dir im Blockly noch die andere Möglichkeiten angehängt (aktuelles Datum in ms und bestimmtes Datum in ms):
      807ef671-97b4-4e09-83a5-280a4071e1ad-image.png

      Du siehst auch hier kommt beim Datum vom 27.8.2021 leicht auf die Millisekunden:
      1630015200000 und damit auch auf 319 Tage, wie die duration Bibliothek ausgibt. Wenn Du also lieber selbst rechnen willst, kannst Du es auch ohne die Bibliothek easy tun.

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="m:)gvKQ,tVbet;-TV{5b">seit</variable>
       </variables>
       <block type="procedures_defcustomreturn" id="X!%2r7kCe4uVH:d}`32Y" x="-562" y="38">
         <mutation statements="false">
           <arg name="seit" varid="m:)gvKQ,tVbet;-TV{5b"></arg>
         </mutation>
         <field name="NAME">Zeitraum_Tage</field>
         <field name="SCRIPT">dmFyIER1cmF0aW9uID0gcmVxdWlyZSgiZHVyYXRpb24iKTsKCnZhciBkdXJhdGlvbiA9IG5ldyBEdXJhdGlvbihuZXcgRGF0ZShzZWl0KSk7CnJldHVybiBkdXJhdGlvbi5kYXlzOw==</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       </block>
       <block type="debug" id="Bb(Yc|=`6FU{/4[.C=1X" x="-562" y="88">
         <field name="Severity">log</field>
         <value name="TEXT">
           <shadow type="text" id="|m|X_N`BiZ%InvfDMMwK">
             <field name="TEXT">test</field>
           </shadow>
           <block type="procedures_callcustomreturn" id="dQ61jfAA2hmi!M1mDqQo">
             <mutation name="Zeitraum_Tage">
               <arg name="seit"></arg>
             </mutation>
             <value name="ARG0">
               <block type="lists_split" id="TD,]mjs?,-6xPS{($oSZ">
                 <mutation mode="SPLIT"></mutation>
                 <field name="MODE">SPLIT</field>
                 <value name="INPUT">
                   <block type="text" id=".0|RaEZ@@!1(Ej099i-*">
                     <field name="TEXT">2021,8,27</field>
                   </block>
                 </value>
                 <value name="DELIM">
                   <shadow type="text" id="#X%yFw`93sg7E2$ILJ_N">
                     <field name="TEXT">,</field>
                   </shadow>
                 </value>
               </block>
             </value>
           </block>
         </value>
         <next>
           <block type="debug" id="A7l5f!#=y2PF72?N3J?z">
             <field name="Severity">log</field>
             <value name="TEXT">
               <shadow type="text" id="+h!]x636x85Y2qVC2uu]">
                 <field name="TEXT">test</field>
               </shadow>
               <block type="time_get" id="],CE@TAC+Oh8FUEA$2Y9">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                 <field name="OPTION">object</field>
               </block>
             </value>
             <next>
               <block type="debug" id="g{Cu^@+4jhqS=hSeGH~7">
                 <field name="Severity">log</field>
                 <value name="TEXT">
                   <shadow type="text" id="QqI0_2FCqpwW*D_jsC||">
                     <field name="TEXT">test</field>
                   </shadow>
                   <block type="convert_from_date" id="[oKNLVL,k4)^s/zD0-un">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                     <field name="OPTION">object</field>
                     <value name="VALUE">
                       <block type="text" id="_O^?86yj_3.I$~FYD%*7">
                         <field name="TEXT">2021/8/27</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <next>
                   <block type="debug" id=":0fWS(#KtbA(kJ=dI+7L">
                     <field name="Severity">log</field>
                     <value name="TEXT">
                       <shadow type="text" id="M^i[sWHMx~peyj/P*X$,">
                         <field name="TEXT">test</field>
                       </shadow>
                       <block type="math_round" id="=gloh%t#7j(;OS_Y+;Mp">
                         <field name="OP">ROUNDDOWN</field>
                         <value name="NUM">
                           <shadow type="math_number" id="xN484bNwbqTuVYC7|Z03">
                             <field name="NUM">3.1</field>
                           </shadow>
                           <block type="math_arithmetic" id="tG0~nBi^eEhKj[c~eWFa">
                             <field name="OP">DIVIDE</field>
                             <value name="A">
                               <shadow type="math_number" id="E(rxg^}]Pw[!I106|Ll:">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="math_arithmetic" id="xL1)6P%OmSlVH{6=){(f">
                                 <field name="OP">MINUS</field>
                                 <value name="A">
                                   <shadow type="math_number" id="u`j1SY@jpw.]hVP#lUW4">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="time_get" id="[JsB^D7A]Y{X$75E{(fT">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                     <field name="OPTION">object</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <shadow type="math_number" id="jwV97|MDF+K*dFN*#@u%">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="convert_from_date" id="vlZ[bRTj6!r;NV+d!x[o">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                     <field name="OPTION">object</field>
                                     <value name="VALUE">
                                       <block type="text" id="D6.e]0/+UTZ)aPTqKOvn">
                                         <field name="TEXT">2021/8/27</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <value name="B">
                               <shadow type="math_number" id="FI2=Q!iks[mhY!SgR/=v">
                                 <field name="NUM">86400000</field>
                               </shadow>
                             </value>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </next>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      S Offline
      S Offline
      srkonus
      wrote on last edited by
      #16

      @mickym Mega - Vielen Dank! Jetzt muss ich das nur noch irgendwie in eine Variable bekommen und kann damit weiter rechnen.

      mickymM 1 Reply Last reply
      0
      • S srkonus

        @mickym Mega - Vielen Dank! Jetzt muss ich das nur noch irgendwie in eine Variable bekommen und kann damit weiter rechnen.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        wrote on last edited by
        #17

        @srkonus Na das sollte doch wirklich kein Problem sein, Du musst doch den Block - statt dem debug output nur einer Variablen zuweisen:

        19178f2d-fb0a-4ef9-b8f8-d7692de32242-image.png

        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.

        S 1 Reply Last reply
        0
        • mickymM mickym

          @srkonus Na das sollte doch wirklich kein Problem sein, Du musst doch den Block - statt dem debug output nur einer Variablen zuweisen:

          19178f2d-fb0a-4ef9-b8f8-d7692de32242-image.png

          S Offline
          S Offline
          srkonus
          wrote on last edited by
          #18

          @mickym Habe es mit "Schreibe Objekt ID" gemacht. Morgen einmal nachschauen, ob das "Tage Seit" sich automatisch aktualisiert oder ich einen CRON Job einrichten muss.

          T 1 Reply Last reply
          0
          • S srkonus

            @mickym Habe es mit "Schreibe Objekt ID" gemacht. Morgen einmal nachschauen, ob das "Tage Seit" sich automatisch aktualisiert oder ich einen CRON Job einrichten muss.

            T Offline
            T Offline
            TT-Tom
            wrote on last edited by TT-Tom
            #19

            @srkonus

            Startest du das Script automatisch neu, wenn nicht, wird sich nach dem ersten Durchlauf nichts mehr ändern.

            Entweder Triggern oder ein CRON halt.

            Gruß Tom

            Gruß Tom
            https://github.com/tt-tom17
            Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

            NSPanel Script Wiki
            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            NSPanel Adapter Wiki
            https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

            metaxaM 1 Reply Last reply
            1
            • T TT-Tom

              @srkonus

              Startest du das Script automatisch neu, wenn nicht, wird sich nach dem ersten Durchlauf nichts mehr ändern.

              Entweder Triggern oder ein CRON halt.

              Gruß Tom

              metaxaM Offline
              metaxaM Offline
              metaxa
              wrote on last edited by
              #20

              Mit Interesse habe ich diesen Thread gelesen und versuche ihn für meine Zwecke umzusetzen.

              Irgendetwas mache ich falsch, die Berechnung von @srkonus (danke für den npm - link) stimmt, meine eigene aber nicht.

              25308528-0321-4164-9008-52e5a69dd9c6-image.png
              c28a00ce-f04d-45b4-ade4-2409f945f7f5-image.png

              Funktion Zeitraum_Tage_1 --> Ergebnis 96 (richtig)

              var Duration = require("duration");
              
              var duration = new Duration(new Date(seit));
              return duration.days;
              

              Funktion Zeitraum_Tage_2 --> Ergebnis 66 (falsch)

              var Duration = require("duration");
              
              var duration = new Duration(new Date(2022, 04, 12));
              return duration.days;
              

              Warum bitte?

              T metaxaM 2 Replies Last reply
              0
              • metaxaM metaxa

                Mit Interesse habe ich diesen Thread gelesen und versuche ihn für meine Zwecke umzusetzen.

                Irgendetwas mache ich falsch, die Berechnung von @srkonus (danke für den npm - link) stimmt, meine eigene aber nicht.

                25308528-0321-4164-9008-52e5a69dd9c6-image.png
                c28a00ce-f04d-45b4-ade4-2409f945f7f5-image.png

                Funktion Zeitraum_Tage_1 --> Ergebnis 96 (richtig)

                var Duration = require("duration");
                
                var duration = new Duration(new Date(seit));
                return duration.days;
                

                Funktion Zeitraum_Tage_2 --> Ergebnis 66 (falsch)

                var Duration = require("duration");
                
                var duration = new Duration(new Date(2022, 04, 12));
                return duration.days;
                

                Warum bitte?

                T Offline
                T Offline
                TT-Tom
                wrote on last edited by
                #21

                @metaxa

                Ich würde sagen die Schreibweise des Datums ist falsch. dd/mm/yyyy

                Gruß Tom
                https://github.com/tt-tom17
                Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                NSPanel Script Wiki
                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                NSPanel Adapter Wiki
                https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                metaxaM 1 Reply Last reply
                0
                • T TT-Tom

                  @metaxa

                  Ich würde sagen die Schreibweise des Datums ist falsch. dd/mm/yyyy

                  metaxaM Offline
                  metaxaM Offline
                  metaxa
                  wrote on last edited by
                  #22

                  @tt-tom ich habe mich nach der Beschreibung auf der npm Seite gehalten:
                  66fcceaa-647e-42a0-a632-65df6eacfc13-image.png
                  oder wie meinst du das?

                  T 1 Reply Last reply
                  0
                  • metaxaM metaxa

                    Mit Interesse habe ich diesen Thread gelesen und versuche ihn für meine Zwecke umzusetzen.

                    Irgendetwas mache ich falsch, die Berechnung von @srkonus (danke für den npm - link) stimmt, meine eigene aber nicht.

                    25308528-0321-4164-9008-52e5a69dd9c6-image.png
                    c28a00ce-f04d-45b4-ade4-2409f945f7f5-image.png

                    Funktion Zeitraum_Tage_1 --> Ergebnis 96 (richtig)

                    var Duration = require("duration");
                    
                    var duration = new Duration(new Date(seit));
                    return duration.days;
                    

                    Funktion Zeitraum_Tage_2 --> Ergebnis 66 (falsch)

                    var Duration = require("duration");
                    
                    var duration = new Duration(new Date(2022, 04, 12));
                    return duration.days;
                    

                    Warum bitte?

                    metaxaM Offline
                    metaxaM Offline
                    metaxa
                    wrote on last edited by metaxa
                    #23

                    @metaxa sagte in Anzahl der Tage nach Datum:

                    Funktion Zeitraum_Tage_1 --> Ergebnis 96 (richtig)

                    Ich habe rasch mit Excel nachgerechnet, da kommen aktuell 94 Tage raus. Komisch ........

                    e23b18a0-ac25-4a6d-b149-9769fca3965a-image.png

                    =DATEDIF($C$5;$F$6;"d")
                    
                    T 1 Reply Last reply
                    0
                    • metaxaM metaxa

                      @tt-tom ich habe mich nach der Beschreibung auf der npm Seite gehalten:
                      66fcceaa-647e-42a0-a632-65df6eacfc13-image.png
                      oder wie meinst du das?

                      T Offline
                      T Offline
                      TT-Tom
                      wrote on last edited by
                      #24

                      @metaxa
                      Bin von Date ausgegangen. Muss mir mal die npm Seite ansehen

                      Gruß Tom
                      https://github.com/tt-tom17
                      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                      NSPanel Script Wiki
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      NSPanel Adapter Wiki
                      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                      metaxaM 1 Reply Last reply
                      0
                      • T TT-Tom

                        @metaxa
                        Bin von Date ausgegangen. Muss mir mal die npm Seite ansehen

                        metaxaM Offline
                        metaxaM Offline
                        metaxa
                        wrote on last edited by
                        #25

                        @tt-tom sagte in Anzahl der Tage nach Datum:

                        die npm Seite

                        https://www.npmjs.com/package/duration

                        1 Reply Last reply
                        0
                        • metaxaM metaxa

                          @metaxa sagte in Anzahl der Tage nach Datum:

                          Funktion Zeitraum_Tage_1 --> Ergebnis 96 (richtig)

                          Ich habe rasch mit Excel nachgerechnet, da kommen aktuell 94 Tage raus. Komisch ........

                          e23b18a0-ac25-4a6d-b149-9769fca3965a-image.png

                          =DATEDIF($C$5;$F$6;"d")
                          
                          T Offline
                          T Offline
                          TT-Tom
                          wrote on last edited by TT-Tom
                          #26

                          @metaxa bei mir kommen 96 raus. Formatierungensfehler der Zellen vielleicht.

                          Gruß Tom
                          https://github.com/tt-tom17
                          Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                          NSPanel Script Wiki
                          https://github.com/joBr99/nspanel-lovelace-ui/wiki

                          NSPanel Adapter Wiki
                          https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                          metaxaM 1 Reply Last reply
                          0
                          • T TT-Tom

                            @metaxa bei mir kommen 96 raus. Formatierungensfehler der Zellen vielleicht.

                            metaxaM Offline
                            metaxaM Offline
                            metaxa
                            wrote on last edited by metaxa
                            #27

                            @tt-tom sagte in Anzahl der Tage nach Datum:

                            bei mir kommen 96 raus.

                            Korrekt, in Excel habe ich es richtig gestellt, sorry mein Fehler. Ein Rätsel bleibt mir aber die Berechnung der duration function.

                            T 1 Reply Last reply
                            0
                            • metaxaM metaxa

                              @tt-tom sagte in Anzahl der Tage nach Datum:

                              bei mir kommen 96 raus.

                              Korrekt, in Excel habe ich es richtig gestellt, sorry mein Fehler. Ein Rätsel bleibt mir aber die Berechnung der duration function.

                              T Offline
                              T Offline
                              TT-Tom
                              wrote on last edited by
                              #28

                              @metaxa

                              Ja das ist komisch. Komme aktuell nicht an mein Rechner, um selber zu testen.

                              Gruß Tom
                              https://github.com/tt-tom17
                              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                              NSPanel Script Wiki
                              https://github.com/joBr99/nspanel-lovelace-ui/wiki

                              NSPanel Adapter Wiki
                              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                              mickymM 1 Reply Last reply
                              0
                              • T TT-Tom

                                @metaxa

                                Ja das ist komisch. Komme aktuell nicht an mein Rechner, um selber zu testen.

                                mickymM Online
                                mickymM Online
                                mickym
                                Most Active
                                wrote on last edited by mickym
                                #29

                                Das Problem ist, wenn Du bei Date nicht über eine Array initialisierst sondern Date mit dem normalen Konstruktor verwendest, (s. Date Funktion), dann wird der Januar mit Index 0 gezählt.

                                18e36f61-dc9b-4a16-ac68-024854e0820b-image.png

                                Siehe hier: https://www.w3schools.com/js/js_dates.asp

                                Um also den 12.April 2022 zu bekommen musst Du beim Monat eines abziehen.

                                var Duration = require("duration");
                                
                                var duration = new Duration(new Date(2022,3,12));
                                return duration.days;
                                

                                Sprich in deinem 2. Beispiel berechnest Du die Tage seit dem 12. Mai 2022 anstelle des Aprils.

                                Intern scheint bei einer Array Übergabe, dieses als String konvertiert zu werden siehe hier und somit in einen String konvertiert zu werden.

                                2acf4b04-f375-44bf-aa7a-e3bd03f0478c-image.png

                                Als String wird es dann wieder korrekt interpretiert:

                                var Duration = require("duration");
                                
                                var duration = new Duration(new Date("2022,4,12"));
                                return duration.days;
                                
                                

                                Wenn Du Dir das Datum als String ausgeben lässt, dann siehst Du es ja:

                                var Duration = require("duration");
                                
                                // var duration = new Duration(new Date("2022,4,12"));
                                // return duration.days;
                                
                                const d = new Date(2022,4,12);
                                return d;
                                

                                ergibt dann:
                                b9d7fd46-1747-456e-944c-6acd6e45da5b-image.png

                                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 Reply Last reply
                                1
                                • mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  wrote on last edited by mickym
                                  #30

                                  Sorry - für die Verwirrung -

                                  @metaxa Somit kannst Du Deinen Datenpunkt als String direkt der duration Bibliothek übergeben, da dann das Datum aus einem String gebildet wird:

                                  0be459bb-1dc7-4d4f-a721-b699b0c396f4-image.png

                                  Also sorry nochmal. Aber so ist es ja auch noch einfacher und spart sich die Umrechnerei halt komplett. Man muss halt nur darauf achten, dass der String das Format YYYY/MM/DD hat. Ich lerne auch jeden Tag dazu. ;)

                                  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.

                                  T metaxaM 2 Replies Last reply
                                  1
                                  • mickymM mickym

                                    Sorry - für die Verwirrung -

                                    @metaxa Somit kannst Du Deinen Datenpunkt als String direkt der duration Bibliothek übergeben, da dann das Datum aus einem String gebildet wird:

                                    0be459bb-1dc7-4d4f-a721-b699b0c396f4-image.png

                                    Also sorry nochmal. Aber so ist es ja auch noch einfacher und spart sich die Umrechnerei halt komplett. Man muss halt nur darauf achten, dass der String das Format YYYY/MM/DD hat. Ich lerne auch jeden Tag dazu. ;)

                                    T Offline
                                    T Offline
                                    TT-Tom
                                    wrote on last edited by
                                    #31

                                    @mickym sagte in Anzahl der Tage nach Datum:

                                    Man muss halt nur darauf achten, dass der String das Format YYYY/MM/DD hat.

                                    @metaxa
                                    das meine ich vor hin. Kann mir nur die Reihenfolge nicht merken.

                                    Gruß Tom
                                    https://github.com/tt-tom17
                                    Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                    NSPanel Script Wiki
                                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                    NSPanel Adapter Wiki
                                    https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                    mickymM 1 Reply Last reply
                                    0
                                    • T TT-Tom

                                      @mickym sagte in Anzahl der Tage nach Datum:

                                      Man muss halt nur darauf achten, dass der String das Format YYYY/MM/DD hat.

                                      @metaxa
                                      das meine ich vor hin. Kann mir nur die Reihenfolge nicht merken.

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      wrote on last edited by
                                      #32

                                      @tt-tom Daran lags aber nicht. Der String im Datenpunkt ist ja richtig. Das Problem war, dass @metaxa das Datum direkt konstruiert hat und dann muss halt bei Monat 1 abgezogen werden, da die Monate mit Index 0 in Javascript beginnen.

                                      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.

                                      T 1 Reply Last reply
                                      0
                                      • mickymM mickym

                                        @tt-tom Daran lags aber nicht. Der String im Datenpunkt ist ja richtig. Das Problem war, dass @metaxa das Datum direkt konstruiert hat und dann muss halt bei Monat 1 abgezogen werden, da die Monate mit Index 0 in Javascript beginnen.

                                        T Offline
                                        T Offline
                                        TT-Tom
                                        wrote on last edited by
                                        #33

                                        @mickym
                                        Ah, okay. Das Problem tritt aber nur auf, wenn man kein Enddatum angibt. Gruß Tom

                                        Gruß Tom
                                        https://github.com/tt-tom17
                                        Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                        NSPanel Script Wiki
                                        https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                        NSPanel Adapter Wiki
                                        https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                        mickymM 1 Reply Last reply
                                        0
                                        • T TT-Tom

                                          @mickym
                                          Ah, okay. Das Problem tritt aber nur auf, wenn man kein Enddatum angibt. Gruß Tom

                                          mickymM Online
                                          mickymM Online
                                          mickym
                                          Most Active
                                          wrote on last edited by mickym
                                          #34

                                          @tt-tom

                                          Ah, okay. Das Problem tritt aber nur auf, wenn man kein Enddatum angibt. Gruß Tom

                                          Nein hat damit nichts zu tun - wie gesagt, dass Problem ist immer, dass Date Objekt in JS mit Index 0 rechnen.
                                          Wie gesagt ich hab unten ja zur Javascript Referenz verlinkt. https://www.w3schools.com/js/js_dates.asp

                                          Das hat mit dem Enddatum nichts zu tun, da musst du genauso eins abziehen.

                                          Folglich gibt dies hier:

                                          var Duration = require("duration");
                                          
                                          var duration = new Duration(new Date(2022,6,1),new Date(2022,7,1));
                                          return duration.days;
                                          

                                          31 Tage und nicht 30, weil es sich hier nicht um den JUNI, sondern um den JULI handelt.

                                          Dies hingegen berechnet korrekt den JUNI:

                                          var Duration = require("duration");
                                          
                                          var duration = new Duration(new Date(2022,5,1),new Date(2022,6,1));
                                          return duration.days;
                                          

                                          Also 30 Tage.

                                          BEACHTE: Bei dieser Schreibweise, werden 3 Argumente als Zahlen zur Konstruktion des Date-Objektes übergeben und KEIN String (oder Array, das implizit in einen String umgewandelt wird). Insofern war das Problem von @metaxa nicht nur, dass er einen Monat zuviel genommen hat, sondern 2 unterschiedliche Formate zur Konstruktion des Date-Objektes.

                                          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.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          351

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          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