NEWS
Visualisierung mit Node Red erstellen
-
@mickym Hast Du - Danke
-
@damrak2022 Wie gesagt ich hab das ja auch schon mal alles in meinem Datumsthread erklärt.
Wenn diese 24660 zum Beispiel auf ein Ereignis in der Vergangenheit hinweisen - also von jetzt 6 Stunden und 51 Minuten zurück, dann benutzt Du die mächtige moments Bibliothek:
So kannst Du Dir zum Beispiel das Datum und die Uhrzeit von vor 24660 Sekunden vom aktuellen Zeitpunkt ausgeben lassen:
$moment().subtract($$.payload,'seconds').locale("de").format('LLLL')
auch wenn die Bibliothek leider nicht mehr weiter entwickelt wird.
-
@mickym Ich habe das von Dir mit der Moments Bibliothek gelesen, aber ich bin da ziemlich schnell ausgestiegen, da ich es nicht wirklich kapiert habe. Aber ich komme ja in winzigen Schrittchen voran
-
@mickym Hallo, ich bin auch wieder da -
Jetzt habe ich zum wiederholten Male Deinen Beitrag gelesen, aber ich bekomme es natürlich wieder nicht hin.
Ich habe hier eine Datumsangabe, welche als String geliefert wird. Nun versuche ich schon seit gefühlt ewiger Zeit diesen so abzuändern, das er mir im deutschen Format, also DD - MM - YYYY angezeigt wird, scheitere aber kläglich.
Bestimmt kannst Du das in 5 Sekunden lösen.
-
@damrak2022 Die Frage ist, ob Du es selbst lernen willst - oder von mir in 5s einfach eine Lösung haben willst?
-
@mickym Natürlich lernen. Das geht bestimmt auch in der change node über JSONATA
-
@damrak2022Richtig - geht das über die Change Node und JSONATA - weil Du möchtest ja Deine payload ändern. Möchtest Du eine Lösung mit oder ohne die moments Bibliothek?
-
@mickym Ich glaube ohne wäre mir lieber, da ich erstmal die einfachen Sachen kapieren will
-
@damrak2022 Na die moments Bibliothek ist nicht so kompliziert. Ich hätte Dir ja geholfen. Aber gut - machen wir es ohne.
Damit behandeln wir die payload - die herein kommt als Zeichenkette.Ich geht also davon aus, dass die Zeichenkette:
2022-10-27
lautet.
-
@mickym So sieht die Debug aus:
-
@damrak2022 Nun dann habe ich ja richtig gedacht. Wie sind nun die einzelnen Datumsbestandteile voneinander getrennt?
-
@mickym Äh mit einem Bindestrich. Das geht auch mit ändere und setze. Aber das ist nicht nutzbar, weil morgen ein anderes Datum ist
-
@damrak2022 gut dann mach mal noch eine debug Node hinter deine Change NOde und versuche mal das Datum in seine Bestandteile aufzuteilen.
Nein wir nehmen JSONATA und teilen erst mal das Datum in seine Bestandteile auf - wie Du sagst hast Du den Bindestrich in diesem Fall als Trenner.
Dann schau Dir mal die split Funktion in der Change Node in JSONATA an.
Dies ist ja die Ausgangssituation:
-
Wenn Du etwas an dem Hilfetext nicht verstehst - dann frag - sonst warte ich hier eine Ewigkeit.
-
@mickym Auch wenn ich das lese, kapiere ich es nicht.
-
@mickym Was ist denn das "str"? string?
-
@damrak2022 Ok - dann fangen wir Schritt für Schritt an.
Der erste Teil der Beschreibung
Teilt str in einem Array mit Teilzeichenfolgen. Es ergibt einen Fehler, wenn str keine Zeichenfolge ist.
@mickym Was ist denn das "str"? string?
$split(str [, separator] [, limit])
Das bezieht sich auf den Befehl der oben drüber abgebildet ist.
In unserem Fall wollen wir doch die payload, die in die Change Node kommt in seine Bestandteile aufteilen.
Der optionale Parameter limit ist eine Zahl, die die maximale Anzahl von Teilzeichenfolgen angibt, die in dem rückzugebenen Array enthalten sein sollen. Alle zusätzlichen Teilzeichenfolgen werden verworfen. Wenn limit nicht vorgegeben wird, wird str vollständig geteilt, wobei die Größe des resultierenden Arrays nicht begrenzt ist. Es handelt sich um einen Fehler, wenn limit eine negative Zahl ist.
Also Limit brauchen wir nicht - da das optional ist und wir keine Begrenzung benötigen.
Also schaut unser Befehl erst mal ohne limit aus und wir wollen die payload aufteilen
$split(payload,separator)
Was ist nun unser separator - also das Teil, mit dem wir die payload in seine Bestandteile zerlegen?
Der Hilfetext sagt ja folgendes:
Der optionale Parameter separator gibt die Zeichen in der str an, anhand dem, vorgegeben entweder als Zeichenfolge oder als regulärer Ausdruck, str geteilt werden soll. Wenn separator nicht vorgegeben wird, wird ein leerer String als separator angenommen und str wird in ein Array aus einzelnen Zeichen aufgeteilt. Es handelt sich um einen Fehler, wenn separator leer ist.
-
@mickym Das ist der Bindestrich
-
-
@mickym Okay, das habe ich