Eigenartiges Verhalten von Date – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Eigenartiges Verhalten von Date Fri, 29 Jan 21 08:14:33 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783250#m1783250 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783250#m1783250 <p>Hallo,</p> <p>gerade über ein seltsames Verhalten der Methode <code>Date</code> gestolpert. <code>Date.parse</code> interpretiert Zahlen wie <code>2,25</code> im Chrome und in seinem blauen Avatar als Datum:</p> <pre><code class="block">x=new Date(Date.parse("2,25")) Sun Feb 25 2001 00:00:00 GMT+0100 (Mitteleuropäische Normalzeit) </code></pre> <p>Im FF sieht es so aus:</p> <pre><code class="block">x=new Date(Date.parse("2,25")) Invalid Date </code></pre> <p>Safari antwortet in der Console mit NaN.</p> <p>Gruß<br> Jürgen</p> Eigenartiges Verhalten von Date Fri, 29 Jan 21 08:32:45 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783252#m1783252 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783252#m1783252 <p>Hi,</p> <blockquote> <p>gerade über ein seltsames Verhalten der Methode <code>Date</code> gestolpert. <code>Date.parse</code> interpretiert Zahlen wie <code>2,25</code> im Chrome und in seinem blauen Avatar als Datum:</p> </blockquote> <p>Zitat aus <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#static_methods" rel="nofollow noopener noreferrer">Date-Object-Beschreibung</a>:</p> <p>Note: Parsing of strings with Date.parse is strongly discouraged due to browser differences and inconsistencies.</p> <p>cu,<br> Andreas a/k/a MudGuard</p> Eigenartiges Verhalten von Date Fri, 29 Jan 21 08:35:27 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783253#m1783253 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783253#m1783253 <p>Das ist einfach. Chrome, FF, Safari haben einen eigenen JS-Interpreter, der hier auf nicht wie erwartet formulierte Argumente jeweils unterschiedlich reagiert. Ersterer versucht diese zu reparieren, FF und Mozilla verweigern das, reagieren aber mit unterschiedlichen Fehlermeldungen.</p> <p>s.a.:</p> <p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date" rel="nofollow noopener noreferrer">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date</a> <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse" rel="nofollow noopener noreferrer"> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse</a></p> Eigenartiges Verhalten von Date Fri, 29 Jan 21 11:01:07 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783258#m1783258 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783258#m1783258 <p>Hallo Andreas, hallo Jörg,</p> <p>ich antworte mal hier.</p> <p>Das Date.parse „eigenwillig“ und mit Vorsicht zu verwenden ist, war mir schon bewusst. Ich verwende es auch nur als letzten Versuch, einen String auf Datum zu testen. Aber dass ein Browser in der Dezimalzahl 2,25 das Datum 25. 2. 2001 sieht, hat mich schon überrascht.</p> <p>Gruß<br> Jürgen</p> Eigenartiges Verhalten von Date Fri, 29 Jan 21 11:12:23 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783259#m1783259 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783259#m1783259 <p>Hallo JürgenB,</p> <blockquote> <p>Aber dass ein Browser in der Dezimalzahl 2,25 das Datum 25. 2. 2001 sieht, hat mich schon überrascht.</p> </blockquote> <p>MS-Excel sieht in der Zahl <code>2.25</code> (Dezimalpunkt) das Datum 1.2.2025 und in <code>25.2</code> den 25.2. des aktuellen Jahres. Man könnte einmal ausprobieren, wie sich Excel diesbezüglich in einer englischen Umgebung verhält.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> Eigenartiges Verhalten von Date Fri, 29 Jan 21 11:25:39 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783261#m1783261 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783261#m1783261 <p>@@JürgenB</p> <blockquote> <p>Aber dass ein Browser in der Dezimalzahl 2,25 das Datum 25. 2. 2001 sieht, hat mich schon überrascht.</p> </blockquote> <p>Wann ist 2,25 in JavaScript eine Dezimalzahl und nicht die Auflistung zweier Zahlen 2 und 25?</p> <p> LLAP</p> <div class="signature">-- <br> <em lang="en">“When I was 5 years old, my mother always told me that happiness was the key to life. When I went to school, they asked me what I wanted to be when I grew up. I wrote down ‘happy.’ They told me I didn’t understand the assignment, and I told them they didn’t understand life.”</em> —John Lennon </div> Eigenartiges Verhalten von Date Fri, 29 Jan 21 12:04:04 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783265#m1783265 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783265#m1783265 <p>Hallo,</p> <blockquote> <p>Aber dass ein Browser in der Dezimalzahl 2,25 das Datum 25. 2. 2001 sieht, hat mich schon überrascht.</p> </blockquote> <p>Was mich überrascht ist der resultierende Februar. Für Javascript ist doch eigentlich März der Monat 2, oder?</p> <p>Gruß<br> Kalk</p> Eigenartiges Verhalten von Date Fri, 29 Jan 21 12:06:39 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783266#m1783266 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783266#m1783266 <p>Hallo,</p> <blockquote> <blockquote> <p>Aber dass ein Browser in der Dezimalzahl 2,25 das Datum 25. 2. 2001 sieht, hat mich schon überrascht.</p> </blockquote> </blockquote> <p>man könnte sich fragen, ob es irgendwo üblich ist, das Datum mit Komma getrennt zu schreiben. Mir ist da nichts bekannt, aber was heißt das schon?</p> <blockquote> <p>MS-Excel sieht in der Zahl <code>2.25</code> (Dezimalpunkt) das Datum 1.2.2025 und in <code>25.2</code> den 25.2. des aktuellen Jahres.</p> </blockquote> <p>Ups. Auf meinem Firmen-Laptop erkennt Excel (Office 365) sowohl die Eingabe <strong>2.25</strong> als auch <strong>25.2</strong> als die Dezimalzahlen, die sie darzustellen scheinen. Ein Datum vermutet mein Excel nur, wenn die Eingabe zwei Punkte enthält.</p> <blockquote> <p>Man könnte einmal ausprobieren, wie sich Excel diesbezüglich in einer englischen Umgebung verhält.</p> </blockquote> <p>Ich habe zwar die deutsche Version, aber auf meinem PC ist systemweit der Punkt als Dezimaltrennzeichen eingestellt, und das ISO-8601-Datumsformat.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Für welches Tier mühen wir uns am meisten ab? - Für die Katz'. </div> Eigenartiges Verhalten von Date Fri, 29 Jan 21 11:34:03 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783262#m1783262 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783262#m1783262 <p>Hallo Gunnar,</p> <blockquote> <p>Wann ist 2,25 in JavaScript eine Dezimalzahl und nicht die Auflistung zweier Zahlen 2 und 25?</p> </blockquote> <p>in der Interpretation meines Tabellensortierers. Ich finde, Zahlen sollten so dargestellt werden können, wie es der Seitenbesucher gewöhnt ist.</p> <p>Aber auch in der „Auflistung zweier Zahlen 2 und 25“ ein Datum zu erkennen, hatte ich nicht erwartet.</p> <p>Gruß<br> Jürgen</p> Eigenartiges Verhalten von Date Fri, 29 Jan 21 12:03:35 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783264#m1783264 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783264#m1783264 <p>Hallo Gunnar,</p> <p>in einem String kann es all das sein, was man hineindeuten möchte. Egal in welcher Sprache der String verarbeitet wird.</p> <p>In <strong>JavaScript</strong> ist es aber weder noch. Es sind zwei Zahlen, verknüpft mit dem Komma-Operator, dem letzten Hund im Operatorenrudel. Das ist keine Auflistung, das würde das Entstehen einer Liste suggerieren. Sondern (und das schreibe ich jetzt nicht mehr für Dich, Du wirst das wissen):</p> <p>$$a, b \longrightarrow b$$</p> <p>Dieser Kamerad ist so zurückhaltend, dass er an diversen Stellen von anderer Syntax überbrüllt wird.</p> <p>Dies sind keine Kommaoperatoren. Der letzte ist sogar ein Syntaxerror</p> <ul> <li><code>function foo(a, b, c) {...}</code> - Parameter</li> <li><code>let m = Math.min(a, b);</code> - Argumente</li> <li><code>let arr = [ 1, 2, 3, 4 ];</code> - Arrayliteral</li> <li><code>let obj = { x: 2, y: 3 };</code> - Objektliteral</li> <li><code class="bad">let x = 1,2;</code> - Deklaration</li> </ul> <p>Aber:</p> <pre><code class="block language-js"><span class="token keyword">let</span> x <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>x<span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>liefert 2.</p> <p>Das Komma ist das Lieblingstier im Zoo der Minifizierer.</p> <pre><code class="block language-js"><span class="token keyword">if</span> <span class="token punctuation">(</span>a <span class="token operator"><</span> <span class="token number">4</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">foo</span><span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span><span class="token punctuation">;</span> b <span class="token operator">=</span> <span class="token number">9</span><span class="token punctuation">;</span> <span class="token function">doSomething</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token function">bar</span><span class="token punctuation">(</span><span class="token number">99</span><span class="token punctuation">)</span><span class="token punctuation">;</span> b <span class="token operator">=</span> <span class="token number">88</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// versus</span> a<span class="token operator"><</span><span class="token number">4</span><span class="token operator">?</span><span class="token punctuation">(</span><span class="token function">foo</span><span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span><span class="token punctuation">,</span>b<span class="token operator">=</span><span class="token number">9</span><span class="token punctuation">,</span><span class="token function">doSomething</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span>b<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">:</span><span class="token punctuation">(</span><span class="token function">bar</span><span class="token punctuation">(</span><span class="token number">99</span><span class="token punctuation">)</span><span class="token punctuation">,</span>b<span class="token operator">=</span><span class="token number">88</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Die Klammern sind leider trotzdem nötig, weil der Rang von , geringer ist als der von ?:</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> Eigenartiges Verhalten von Date Fri, 29 Jan 21 12:10:40 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783267#m1783267 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783267#m1783267 <p>Hi,</p> <blockquote> <blockquote> <p>Aber dass ein Browser in der Dezimalzahl 2,25 das Datum 25. 2. 2001 sieht, hat mich schon überrascht.</p> </blockquote> <p>Was mich überrascht ist der resultierende Februar. Für Javascript ist doch eigentlich März der Monat 2, oder?</p> </blockquote> <p>intern ja. Aber nicht, wenn das Datum aus einem String geparst wird.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Für welches Tier mühen wir uns am meisten ab? - Für die Katz'. </div> Eigenartiges Verhalten von Date Fri, 29 Jan 21 12:11:48 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783268#m1783268 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783268#m1783268 <p>Hallo Kalk,</p> <blockquote> <blockquote> <p>Aber dass ein Browser in der Dezimalzahl 2,25 das Datum 25. 2. 2001 sieht, hat mich schon überrascht.</p> </blockquote> <p>Was mich überrascht ist der resultierende Februar. Für Javascript ist doch eigentlich März der Monat 2, oder?</p> </blockquote> <p>mich hat die 2001 mehr überrascht. Aber vielleicht ist der Programmierer ja ein Fan von <a href="https://de.wikipedia.org/wiki/2001:_Odyssee_im_Weltraum" rel="nofollow noopener noreferrer">Arthur C. Clarke</a>.</p> <p>Gruß<br> Jürgen</p> Eigenartiges Verhalten von Date Fri, 29 Jan 21 12:12:45 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783269#m1783269 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783269#m1783269 <p>Hallo Der Martin,</p> <blockquote> <p>Ich habe zwar die deutsche Version, aber auf meinem PC ist systemweit der Punkt als Dezimaltrennzeichen eingestellt, und das ISO-8601-Datumsformat.</p> </blockquote> <p>wenn ich bei mir das Dezimaltrennzeichen von <code>,</code> auf <code>.</code> ändere, verhält sich mein Excel so wie deins.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Du kannst das Projekt SELFHTML unterstützen,<br> indem du bei Amazon-Einkäufen <a href="https://smile.amazon.de/ch/314-570-45498" rel="nofollow noopener noreferrer">Amazon smile</a> (<a href="https://www.amazon.de/gp/help/customer/display.html?ie=UTF8&nodeId=202035970%5D" rel="nofollow noopener noreferrer">Was ist das?</a>) nutzt. </div> Eigenartiges Verhalten von Date Sat, 30 Jan 21 13:40:28 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783310#m1783310 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783310#m1783310 <p>Hallo Der,</p> <blockquote> <p>man könnte sich fragen, ob es irgendwo üblich ist, das Datum mit Komma getrennt zu schreiben. Mir ist da nichts bekannt, aber was heißt das schon?</p> </blockquote> <p><a href="https://www.grammarly.com/blog/commas-in-dates/#:~:text=When%20writing%20a%20date%2C%20a%20comma%20is%20used,in%20day-month-year%20format%2C%20you%20don%E2%80%99t%20need%20a%20comma." rel="nofollow noopener noreferrer">Kommt drauf an</a> was das Datum enthalten soll.</p> <p>Gruss<br> Henry</p> <div class="signature">-- <br> Meine Meinung zu DSGVO & Co:<br> „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“ </div> „grob misslungen und dann auch noch schlecht dokumentiert“ Sat, 30 Jan 21 12:36:43 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783304#m1783304 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783304#m1783304 <blockquote> <blockquote> <p>Was mich überrascht ist der resultierende Februar. Für Javascript ist doch eigentlich März der Monat 2, oder?</p> </blockquote> <p>mich hat die 2001 mehr überrascht.</p> </blockquote> <p>Das stimmt alles, Ich halte inzwischen die Versuche, ein Datum und/oder Zeitabgaben aus Strings zu parsen in praktisch allen Programmiersprachen für <em>„erst grob misslungen und dann auch noch schlecht dokumentiert“</em>.</p> <p>Anders ausgedrückt, wenn es keine glasklare Dokumentation dafür gibt, dann versuche ich das gar nicht erst, nehme also lieber etwas, wo ich klare Zahlen einwerfen kann. Zumal ich nicht so recht weiß, wozu man sowas haben muss.</p> „grob misslungen und dann auch noch schlecht dokumentiert“ Sat, 30 Jan 21 13:46:04 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783311#m1783311 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783311#m1783311 <p>Hallo Raketenrant,</p> <p>es gibt auch Ausnahmen:</p> <p><a href="https://docs.microsoft.com/en-us/dotnet/api/system.datetime.parse?view=net-5.0" rel="nofollow noopener noreferrer">https://docs.microsoft.com/en-us/dotnet/api/system.datetime.parse?view=net-5.0</a></p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> „grob misslungen und dann auch noch schlecht dokumentiert“ Sun, 31 Jan 21 17:24:33 Z https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783328#m1783328 https://forum.selfhtml.org/self/2021/jan/29/eigenartiges-verhalten-von-date/1783328#m1783328 <blockquote> <p>Hallo Raketenrant,</p> <p>es gibt auch Ausnahmen:</p> <p><a href="https://docs.microsoft.com/en-us/dotnet/api/system.datetime.parse?view=net-5.0" rel="nofollow noopener noreferrer">https://docs.microsoft.com/en-us/dotnet/api/system.datetime.parse?view=net-5.0</a></p> <p><em>Rolf</em></p> </blockquote> <p>Man kann echt an nichts mehr glauben. Nicht einmal mehr daran, dass Microsoft schlecht dokumentiert…</p>