NEWS
Verständnisfrage Date()
-
Hi zusammen,
eine Verständnisfrage.
Es soll folgender String verarbeitet werden (msg.payload ->1. Zeile):
12.05.15 19:09:51 01234567890123456
Der Code dafür ist:
var datum = msg.payload; //var datum = msg.date; //dd.mm.yy hh:mm:ss //01234567890123456 var jahr = "20" + datum.substring(6,8); var monat = datum.substring(3,5); var tag = datum.substring(0,2); var stunde = datum.substring(9,11); var minute = datum.substring(12,14); var sekunde = datum.substring(15,17);
Als Ausgabe erhalte ich:
"2015-06-12T17:09:51.000Z"
Warum steht dort beim Monat eine 06?
Wenn ich mir die Variable monat ausgebe, steht dort eine 05.
Viele Grüße,
Michael
-
Da war doch schon in den letzten tagen was mit falschem Datum in ioBroker.
Aber anders rum:
http://forum.iobroker.org/viewtopic.php?p=4971#p4971
Gesendet von meinem Cynus T7 mit Tapatalk
-
Beschäftige mich erst seit kurzem mit Skripten. Wie testest du das am einfachsten? Ich hab es in der CCU2 Skript probiert, doch da hab ich keine Ausgabe. Habt Ihr da ein spezielles Programm?
-
Hi zusammen,
eine Verständnisfrage.
Es soll folgender String verarbeitet werden (msg.payload ->1. Zeile):
12.05.15 19:09:51 01234567890123456
Der Code dafür ist:
var datum = msg.payload; //var datum = msg.date; //dd.mm.yy hh:mm:ss //01234567890123456 var jahr = "20" + datum.substring(6,8); var monat = datum.substring(3,5); var tag = datum.substring(0,2); var stunde = datum.substring(9,11); var minute = datum.substring(12,14); var sekunde = datum.substring(15,17);
Als Ausgabe erhalte ich:
"2015-06-12T17:09:51.000Z"
Warum steht dort beim Monat eine 06?
Wenn ich mir die Variable monat ausgebe, steht dort eine 05.
Viele Grüße,
Michael
Zitat vom [http://www.w3schools.com/jsref/jsref_getmonth.asp](http://www.w3schools.com/jsref/jsref_getmonth.asp):
> Definition and UsageThe getMonth() method returns the month (from 0 to 11) for the specified date, according to local time.
Note: January is 0, February is 1, and so on. `
(from 0 to 11) , also Januar ist 0, Dezember ist 11
-
Danke Bluefox!
oh je. Ich kann mir vorstellen, dass das für mich einiges an Fehlerpotential birgt.
Bei der Eingabe Monat -1, um bei der Ausgabe den Monat richtig zu setzen und zu sehen.
Wenn ich dann wieder auslese bekomme ich wieder Monat-1.
Javascript, muss man halt wissen.
Warum das ISO Format immer -2h ist (Zeitzone) und dann das "normale" Format dann die richtige Zone vom Rechner hat, ist auch so ein Fallstrick.
Eigentlich wollte ich Epoche als Ausgabeformat haben. ISO war nur ein Zwischenschritt zur Kontrolle. Da wäre es mit nie aufgefallen, dass da dann ein Monat zu viel drin ist.
Werde wohl jetzt alles, was mit Datumsumwandlung zu tun hat doppelt kontrollieren.
Danke noch einmal Bluefox! Ihr Programmiere habt es nicht einfach ;-).
Gesendet von iPhone mit Tapatalk
-
Beschäftige mich erst seit kurzem mit Skripten. Wie testest du das am einfachsten? Ich hab es in der CCU2 Skript probiert, doch da hab ich keine Ausgabe. Habt Ihr da ein spezielles Programm? `
In ioBroker, beim Javascript-Adapterin dem Du vieles als log ausgibst. D.h. eine Variable zur Kontrolle auch als log Funktion rein und dann im ioBroker Admin unter Log nachsehen.
Zum Lernen finde ich Node-red innerhalb von ioBroker ideal. Dort kann man an den einzelnen Stellen Debug Nodes setzen und die Ausgabe dieser Nodes zur Laufzeit per Maus an und ausstellen. Anpassungen gehen super schnell und man sieht, was passiert.
Alles schön Schritt für Schritt. Habe dadurch viel gelernt und dabei wenig Frust gehabt.
Gesendet von iPhone mit Tapatalk