NEWS
Zeitproblem in Javascript
-
Hallo zusammen,
ich verzweifel gerade ein wenig. Ich will den aktuellen Zeitpunkt in einen Datenpunkt schreiben, das ist auch kein Problem, jedoch speichert er mir den Zeitpunkt nicht, wie er es im Log ausgibt (z.B. 11.12.2020 12:52:00) sondern immer mit einem Versatz von -1 Stunde.
Werte ich diesen im VIS mit dem Widget "Timestamp Value" aus, so macht er dennoch die korrekte Uhrzeit draus. Will ich den Zeitpunkt aber verwenden, um damit Zeitdifferenzen zu berechnen und lese ihn in eine Variable ein, so bleibt dort natürlich die eine Stunde Zeitdifferenz bestehen. Wie kann ich das Problem lösen? Ist das sogar eventuell nur wegen der aktuellen Winterzeit so? Bin da gerade echt ratlos....
-
@Snapergy
Script ?
Zeitstempel enthalten immer die Millisekunden seit 1.1.1970 00:00 Uhr UTC. -
Zum Schreiben des Datenpunktes:
var heute = new Date(); //aktueller Zeitpunkt in Objekt speichern setState("0_userdata.0.VIS.System.Synology.Letztes_Festplatten_Backup", heute);
Zum Auslesen:
getState("0_userdata.0.VIS.System.Synology.Letztes_Festplatten_Backup").val
Gebe ich vorher mit log(heute); die Zeit aus, sagt er mir z.B. 13 Uhr, aber speichern tut er 12 Uhr
Was muss ich dann beim Aulesen machen? Pauschal vor dem Rechnen eine Stunde draufrechnen?
-
-
heute - zeitpunkt
-
@Snapergy sagte in Zeitproblem in Javascript:
Zum Schreiben des Datenpunktes:
Du speicherst ein Date-Objekt. Ich würde die Millisekunden in einem Datenpunkt vom Typ Zahl speichern.
var heute = Date.now(); //aktueller Zeitpunkt in Objekt speichern setState("0_userdata.0.VIS.System.Synology.Letztes_Festplatten_Backup", heute, true);
-
das gleiche habe ich mir auch gerade überlegt. Aber wird dann das Objekt auch in der VIS Korrekt ausgegeben?
-
@Snapergy sagte:
Widget "Timestamp Value"
Da Timestamps i.d.R. Millisekunden enthalten, sollte es mit dem Widget funktionieren.