NEWS
[gelöst] Javascript verwendet falsches Datum
-
huch - warum number?
ändere den mal auf String, wenn der nur das Datum hat...
siehe:
oder direkt in Date...
number müsste doch in der Form Warnungen im Log bringen...
-
@armilar sagte in Javascript verwendet falsches Datum:
huch - warum number?
ändere den mal auf String, wenn der nur das Datum hat...
Ich hab den Datentyp jetzt auf String geändert und das Datum über mein VIS-Frontend auf 3.10.2024 geändert. Ausgabe im Protokoll wieder um 2 Stunden verschoben:
-
@armilar sagte in Javascript verwendet falsches Datum:
number müsste doch in der Form Warnungen im Log bringen...
Ich setze das Datum in VIS über ctrl - Input Date. Ich ging davon aus, dass dann der Unix-Timestamp für 00:00:00 gespeichert wird und man direkt damit rechnen kann. Deswegen der Versuch mit Number. Aber wie du siehst, führt auch Text zum gleichen (falschen) Ergebnis.
-
Stimmt, wie soll das denn weiterverarbeitet werden?
-
@armilar sagte in Javascript verwendet falsches Datum:
Stimmt, wie soll das denn weiterverarbeitet werden?
Es geht um die geplante Ladung meiner PV-Batterie aus dem Netz bei flexiblem Stromtarif. Deswegen habe ich eine Datumsangabe, einen Startzeitpunkt in vollen Stunden, aus dem ich dann einen vollständigen Timestamp zusammensetzen möchte, und eine Ladedauer in vollen Stunden.
Wenn Ladedatum jetzt tatsächlich 00:00:00 Uhr wäre, dann könnte ich so meinen Startzeitpunkt errechnen:
Nur leider ist mein errechneter Startzeitpunkt zwei Stunden zu spät!
-
Was passiert, wenn du die 2 Stunden so subtrahierst?
-
@armilar sagte in Javascript verwendet falsches Datum:
Was passiert, wenn du die 2 Stunden so subtrahierst?
Das wird vermutlich schon funktionieren, allerdings nur bis Ende Oktober. Mit Beginn der Winterzeit wird sich der Abstand auf eine Stunde reduzieren.
Ich werde jetzt versuchen, das Startdatum anders zusammenzusetzen. Allerdings würde ich schon gerne verstehen, was die Ursache für die Datumsabweichung ist. Ich wundere mich, dass es nicht mehr Meldungen zu diesem Problem gibt. Im Grunde simple Zeitschaltfunktionen werden so unnötig kompliziert.
-
@armilar sagte: Was passiert, wenn du die 2 Stunden so subtrahierst?
Das Format "2.10.2024" funktioniert nicht, denn es wird falsch interpretiert (Monat als Tag und umgekehrt). Außerdem muss eine Uhrzeit mitgegeben werden, da sonst 0:00 Uhr UTC verwendet wird.
So erfolgt die richtige Auswertung: -
@achimka sagte: Startzeitpunkt zwei Stunden zu spät!
Mache eine String-Verkettung aus Datum und Stunde:
-
@paul53 sagte in Javascript verwendet falsches Datum:
Das Format "2.10.2024" funktioniert nicht, denn es wird falsch interpretiert (Monat als Tag und umgekehrt). Außerdem muss eine Uhrzeit mitgegeben werden, da sonst 0:00 Uhr UTC verwendet wird.
Ja, mein Denkfehler war davon auszugehen, dass alle Datum-/Zeit-Funktionen in Javascript die lokalen Systemzeit-Einstellungen verwenden. Das tun sie offensichtlich nicht. Deshalb gebe ich bei der Umwandlung eines reinen Datums jetzt immer die Uhrzeit 00:00:00 mit. Ich teste das noch etwas aus, denke aber, dass mein Problem damit gelöst ist.