NEWS
[gelöst] Datum umformatieren
-
Hallo Zusammen,
ich habe leider keine Ahnung von JS daher muss ich einfach mal die Profis fragen
Ich habe einen Datenpunkt der mir das Datum wie folgt anzeigt
2020-03-23T05:20:44
Wie kann ich das in der VIS so anzeigen lassen
23.03.2020 - 20:44
Ich bedanke mich im Voraus für Eure Hilfe
Gruß
Marcel -
@Wszene sagte :
Wie kann ich das in der VIS so anzeigen lassen
23.03.2020 - 20:44Du möchtest die Minuten und Sekunden anzeigen lassen, nicht aber die Stunden ?
EDIT: Mit hh:mm mittels Javascript-Adapter-Funktion:
let date = "2020-03-23T05:20:44"; date = formatDate(new Date(date), 'DD.MM.YYYY - hh:mm');
-
Danke für die schnelle Antwort
Wo und wie muss ich das JS eintragen
Das ist ja auch in deinem Bespiel statisch ich muss ja aber einen Datenpunkt abfragen und diesen dann im neuen Format ausgeben
Ich würde mir sogar den Umweg über einen neuen Datenpunkt machen wenn es sein müsste
Aber ich habe wie oben schon geschrieben leider keine Ahnung von JSGruß
Marcel -
@Wszene sagte:
Ich würde mir sogar den Umweg über einen neuen Datenpunkt machen wenn es sein müsste
Das wirst Du nicht vermeiden können.
// IDs anpassen ! const idSrc = '...'; // Datenpunkt-ID Quellformat const idDst = 'Vis.meineZeit'; // Ziel-ID für Darstellung in Vis function format(src) { return formatDate(new Date(src), 'DD.MM.YYYY - hh:mm'); } let date = getState(idSrc).val; if(existsState(idDst)) setState(idDst, format(date), true); else createState(idDst, format(date), {type: 'string'}); // erzeugt Datenpunkt unter javascript.0 on(idSrc, function(dp) { // triggert bei Wertänderung setState(idDst, format(dp.state.val), true); });
-
da hier bisher nur skripte angeboten wurden und der TE nach vis gefragt hat,
hier eine vis Lösung ohne einen neuen Datenpunkt.
Das ist ein HTML-widget mit Binding.
du musst im Feld statischer Text nur noch deinen Datenpunkt eintragen
(ersetzen von javascript.0.test)
Die Beschreibung für Binding und date-funktion ist hier
https://github.com/ioBroker/ioBroker.vis
Die Formatierung der date-Funktion wird hier erklärt:
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#formatdate
Allerdings darf im Binding um die Formatierungszeichen keine Anfürhungzeichen gesetzt werden.[{"tpl":"tplValueString","data":{"oid":"","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"test_html":"{javascript.0.test;date(DD.MM.YY - hh:m)}"},"style":{"left":"310px","top":"603px","width":"240px","height":"20px"},"widgetSet":"basic"}]
-
-
@Wszene sagte:
Wir der selbsterstellte Datenpunkt automatisch aktualisiert?
Ja, jedesmal, wenn sich der Wert (Datum/Uhrzeit) des Quell-Datenpunktes ändert.
-
Danke dir für deine Hilfe @paul53
-
@Wszene sagte:
das Funktioniert
Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].
-
OK erledigt
-
wie müsste denn das Script aussehen wenn ich den DP nicht selbst erstellen würde und kann ich den Namen den Ordner des Datenpunktes selbst festlegen?
Danke
Marcel -
@Wszene sagte :
kann ich den Namen den Ordner des Datenpunktes selbst festlegen?
Mit createState() kann ein Datenpunkt nur in dem Ordner der Javascript-Instanz erzeugt werden, also z.B. mit der ID "javascript.0.Vis.Zeit". Will man einen Datenpunkt in einem anderen Ordner (z.B. "0_userdata.0") erzeugen, ist es aufwändiger, siehe hier.
-
Ich verstehe nur nicht, warum hier ein aufwändiges Skript eingesetzt wird, obwohl das in vis out of the box
geht.
Die Links zur Dokumentation habe ich mitgesendet und sogar ein exportiertes widget, in dem man nach Import einfach nur den Namen des eigenen Datenpunktes eintragen muss. -