NEWS
Konvertierung Datum mit formatDate()
-
@tt-tom sagte in Konvertierung Datum mit formatDate():
Also ist es sinnvoll zur Zeit "moment" zu nutzen?
Wenn genau das deine Anforderung ist, ja. Muss man dann halt als npm Abhängigkeit in den Instanz-Einstellungen des JavaScript-Adaptes hinzufügen und importieren. Ist nicht im Standard enthalten.
Die Frage ist ja, woher kommt das Datum in diesem Format? Normalerweise sollte das nicht für eine bestimmte Region lesbar gespeichert werden, wenn man damit noch weiterarbeiten möchte.
-
der Ursprung ist der ical-Adapter wo die Mülldaten in einem JSON ausgeben werden. Dieses Json wird dann ausgelesen und in 0_userdata Datenpunkte für die Weiterverarbeitung geschrieben (als String). Link zum Script
-
@tt-tom Okay,
- bin ich natürlich schwer enttäuscht, dass dafür nicht mein TrashSchedule-Adapter genutz wird
- stehen doch im JSON des iCal-Adapters die Daten nicht als
dd.mm.yyyy
, sondern können normal geparst werden?!
-
Zu 1. privat nutze ich den natürlich, grade wegen der Vis Einbindung
Zu 2. die Weiterverarbeitung erfolgt in dem Script von @Armilar für das NSPanel. Bin mit ihm im Kontakt, wo wir Anpassungen durchführen.
-
so wie ich es sehe geht der ical adapter rein nur von einem deutschen datum aus.
https://github.com/iobroker-community-adapters/ioBroker.ical/blob/ec0deb8ecb2912647cba747f63dd328b8bceac06/main.js#L1377C1-L1377C1andere lokalizationen sind nicht vorgesehen. dadurch kann der adapter eigentlich nur im deutschsprachigen raum verwendet werden.
du könntest momentjs verwenden um das datum wieder zu parsen
https://momentjs.com/docs/#/parsing/string-format/
und dann in javascript weiterzuverwenden -
@oliverio sagte in Konvertierung Datum mit formatDate():
dadurch kann der adapter eigentlich nur im deutschsprachigen raum verwendet werden.
Mh? Geht es um die HTML-Darstellung? Im JSON kann man jedenfalls wunderbar mit allen Werten arbeiten (mache ich ja im TrashSchedule auch so). Beispiel-JSON aus
ical.0.data.table
Das kann man alles mit Date parsen:
[ { "date": "Heute ", "event": "Biotonne", "_class": "ical_muell ical_today", "_date": "2023-10-25T22:00:00.000Z", "_end": "2023-10-26T22:00:00.000Z", "_IDID": "317008@mymuell.de", "_allDay": true, "_private": false, "_rule": " ", "location": "", "_calName": "muell", "_calColor": "#000000", "_object": { "type": "VEVENT", "params": [], "start": "2023-10-25T22:00:00.000Z", "datetype": "date", "end": "2023-10-26T22:00:00.000Z", "dtstamp": "2023-10-25T22:00:16.000Z", "uid": "317008@mymuell.de", "created": "2022-12-09T11:10:27.000Z", "lastmodified": "2022-12-09T10:11:38.000Z", "sequence": "0", "status": "CONFIRMED", "summary": "Biotonne", "transparency": "OPAQUE", "method": "PUBLISH" } } ]
-
ne der iCal-Adapter schreibt in den Datenpunkt direkt das Datum im deutschen Format rein.
Daher hat der TE nun Schwierigkeiten das Datum weiterzuverarbeiten, da er es jetzt erstmal wieder parsen muss.
besser wäre es, wenn Adapter Datumswerte in der Speicherung als ISO oder als timestamp verwenden würde. Dann kann man damit weiterarbeiten.
In eine lokale Darstellung umwandeln sollte man so etwas immer nur kurz vor der Darstellung in auf einem Bildschirm und dafür hat vis ja dann die entsprechenden widgets, bzw. eine eigene Datum-Formatierfunktion -
@oliverio sagte in Konvertierung Datum mit formatDate():
ne der iCal-Adapter schreibt in den Datenpunkt direkt das Datum im deutschen Format rein.
ja, in
ical.0.data.html
undical.0.data.text
, aber nicht in denical.0.data.table
- und der wird ja im Script verwendet. Siehe Auszug oben. Bitte nicht in die falsche Richtung schicken Da braucht man nix mit momentjs im Deutschen Format parsen.EDIT: Okay, und im
date
-Attribut des JSON, aber da kann auch "Heute" oder "Morgen" drin stehen - siehe Beispiel im vorigen Post. Wäre also eh Quatsch das zu parsen.Einfach
_date
stattdate
nehmen und fertig. -
@tt-tom sagte in Konvertierung Datum mit formatDate():
Bin mit ihm im Kontakt, wo wir Anpassungen durchführen.
Dann ist es einfach:
Dort einfach
eventStartdatum
statteventDatum
nutzen. Dann kann man das auch wieder parsen. -
@haus-automatisierung
@OliverIODanke für euren Input, damit habe ich erstmal eine Richtung wie wir weiter machen. Muss mich jetzt nur mit @Armilar abstimmen, wie die Daten übergeben werden sollen.
-
@haus-automatisierung sagte in Konvertierung Datum mit formatDate():
Das kann man alles mit Date parsen:
ja, das ist alles ISO.
Dann weiß ich nicht von was der TE spricht wenn er auf den iCal-Adapter verweist,
woher sein Datum dann wirklich kommt. -
@oliverio sagte in Konvertierung Datum mit formatDate():
woher sein Datum dann wirklich kommt.
Na aus der Date-Property, welche in meinem Beispiel oben zu "Heute" gewandelt wurde, weil meine iCal-Settings das so vorgeben. Da hattest Du ja schon angemerkt, dass da immer ein MM.DD.(YYYY) Format drin landet.
Daher ja der Vorschlag, stattdessen
_date
zu nutzen, weil das ein ISO-Date ist (und kein formatiertes Datum).