NEWS
Bug in formatDate
-
Ich versuche die formatDate Funktion zu benutzen.
Dabei habe ich ein für mich nicht verständliches Verhalten entdeckt.
var diff = 10*24*60*60*1000; // erwartetes Ergebnis 11.01.1970 log(formatDate(diff,"DD.MM.YYYY")); var diff = 11*24*60*60*1000; // erwartetes Ergebnis 12.01.1970 log(formatDate(diff,"DD.MM.YYYY"));log file
05:36:24.470 [info] javascript.0 script.js.common.Test: 11.01.1970 05:36:24.471 [info] javascript.0 script.js.common.Test: 13.02.2000Was ich nicht verstehe ist das letzte Datum "13.02.2000".
Ich hätte "12.01.1970" erwartet.
Mache ich einen Denkfehler oder hat die Funktion noch einen Bug?
-
-
Um die Frage mal zu beantworten …
Ja da ist die Dokumentation nicht vollständig. :-)
Die Funktion prüft folgendes:
1.) Zahl <946681200 dann wird es als "Dauer" angenommen und erlaubt.
2.) Sonst wenn Zahl < 946681200000 (<2000.01.01 00:00:00) dann wird angenommen das es eine "alte" Angabe in Sekunden anstelle Millisekunden ist und es wird *1000 genommen. Früher war in ioBroker alles in Sekunden und wurde vor ca. 1-2 Jahren auf ms umgestellt. Daher ist an einigen Stellen noch Kompatibilitätscode drin damit alte Skripte weiterlaufen
Das erklärt das verhalten und wäre damit "as designed"
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden