I need two dates as start and endpoint for my graphs from the database.
I use date picker Form Element type Date
Now I found out that if I select 2020-05-02 the resulting output is 2020-05-01T22:00:00Z.
I now crop off the T22:00:00Z, I don't need the time, that is added later.
Any idea how to get to the date I selected?
What time zone are you (GMT +?)
What timezone is the node-red sever? (Same or different?)
And what time is it now?
Ps, show us your code how you remove the time part.
Lastly, put a debug node after the form control and show what comes into debug node.
EDIT...
OK, I'm bored of waiting.
The problem is - there is no problem. The time you are seeing in is UTC. You own timezone is likely GMT+2?
Here is an example (note time formStart and formEnd times are -1h (AKA UTC time) - I am in GMT+1)
Then note how the proofs and the starttoString/endToString are correct.
This is the function node code if you want it...
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
}
let dStart = new Date(msg.payload.formStart);
//proof time is normal (its a timezone thing)
node.warn(["proof start date is ok - yyyy mm dd hh mm ss",
dStart.getFullYear(),
dStart.getMonth()+1,
dStart.getDate(),
dStart.getHours(),
dStart.getMinutes(),
dStart.getSeconds()
]);
msg.payload.startToString = dStart.toString();//default toString
msg.payload.startDateIsoformat = formatDate(dStart); //iso format date only
let dEnd = new Date(msg.payload.formEnd);
//proof time is normal (its a timezone thing)
node.warn(["proof end date is ok - yyyy mm dd hh mm ss",
dEnd.getFullYear(),
dEnd.getMonth()+1,
dEnd.getDate(),
dEnd.getHours(),
dEnd.getMinutes(),
dEnd.getSeconds()
]);
msg.payload.endToString = dEnd.toString();//default toString
msg.payload.endDateIsoformat = formatDate(dEnd); //iso format date only
return msg;
Sorry, I was called away by someone with a computer problem.
I am in MEZT time zone and it is running on a RBPi3b.
[{"id":"6e3ea82b.1fc4d8","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"1fb84481.252c73","type":"ui_form","z":"6e3ea82b.1fc4d8","name":"Test","label":"","group":"47dd1af2.e7db4c","order":12,"width":0,"height":0,"options":[{"label":"Van","value":"Start","type":"date","required":true,"rows":null},{"label":"t/m","value":"Eind","type":"date","required":true,"rows":null}],"formValue":{"Start":"","Eind":""},"payload":"","submit":"Test","cancel":"","topic":"","x":130,"y":120,"wires":[["d7a0a766.f62108","dc1d20d2.9ef31"]]},{"id":"d7a0a766.f62108","type":"debug","z":"6e3ea82b.1fc4d8","name":"1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":290,"y":80,"wires":[]},{"id":"f7ccd27e.fa36b8","type":"debug","z":"6e3ea82b.1fc4d8","name":"2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":450,"y":80,"wires":[]},{"id":"dc1d20d2.9ef31","type":"change","z":"6e3ea82b.1fc4d8","name":"chop_off","rules":[{"t":"change","p":"payload.Start","pt":"msg","from":"T22:00:00.000Z","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload.Eind","pt":"msg","from":"T22:00:00.000Z","fromt":"str","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":120,"wires":[["f7ccd27e.fa36b8"]]},{"id":"47dd1af2.e7db4c","type":"ui_group","z":"","name":"Historie","tab":"d77eb30.bbb0a5","order":2,"disp":true,"width":"6","collapse":false},{"id":"d77eb30.bbb0a5","type":"ui_tab","z":"","name":"Grafieken","icon":"dashboard","order":2,"disabled":false,"hidden":false}]
This is what comes out.
The debug window is showing you UTC time. Its actually correct, it's just your interpretation that is wrong.
Study the image I posted.
Try the function I posted.
Ok, but when I see a calendar and pick a date I expect to get the date I pick and not the zulu time from the 0:00 time of the day I chose. That is not logical.
Oh sorry, I made a mistake. The problem is not in the datepicker, it is in the form.
The date picker gives the right date if you ask for a date.
But as I wanted 2 dates I used the form and selected the date field from there.
Sorry I made a mistake.but I am a little confused by all the possibillities node-RED has, but I am glad with it.
I think it's to do with there being no specific date only object/type in JavaScript.
So to be 100% compatible, UTC (Zulu) is the base representation.
Its your use of the date object that matters. The date IS correct. Just use toString to get a local string representation or use moment or a custom function like I wrote for you.
Its just how it is. Timezones are a nightmare.
Glad you're sorted.
I tried your function and now I get British Summertime.... 
(and still not the right date)
Show us the debug output of the function.
{"Start":"2020-04-30T22:00:00.000Z","Eind":"2020-05-01T22:00:00.000Z","startToString":"Thu Apr 30 2020 23:00:00 GMT+0100 (British Summer Time)","startDateIsoformat":"2020-04-30","endToString":"Fri May 01 2020 23:00:00 GMT+0100 (British Summer Time)","endDateIsoformat":"2020-05-01"}
Oh everything is running on my rbPi3b with local time GMT+2 (MEZT). I'll check that....
Officially confused. Might be the gin tbh.
Post your flow and I'll take a look tomorrow.
In the mean time, keep plugging away.
Some thoughts...
What timezone is the pi set to (I'm assuming that's where you run node-red)
What timezone is your browser's machine set to (if you're viewing the node-red editor on a different machine)
Error. I logged into the Pi and found out that I did not configure the timezone and that was BST!
I changed that.
My problem is I have 2 Pi's, one is running node-RED and is controlling my heater and as a development system I have a second Pi for test purposes so I don't interfere with my production (ahum) system.
And in my haste I must have forgotten to setup the second one properly.
After a reboot your function gives the correct values.
So this can be transferred to Production Environment 
Thanks very much


