Awesome
node-red-contrib-simpletime
A <a href="http://nodered.org" target="_new">Node-RED</a> node that is extremely lightweight and which can be inserted in any running flow, and adds time and date payloads with various formatting options, which can be retreived and used later in the flow.
It can also accept an input of a date (see inputs below), and use that date to calculate simpletime's outputs.
Install
Run the following command in your Node-RED user directory - typically ~/.node-red
npm install node-red-contrib-simpletime
Usage
Inputs
Any existing payloads or topics being injected into simpletime will pass unaltered through the node except msg.date
If msg.date is present, it MUST contain a valid date that could be processed by the new Date()
constructor such as;
2024-04-16T12:02:05Z
Mon, 22 Apr 2024 19:55:05 GMT
2024-05-11
1715538484102
(as a number)
If msg.date is not present, simpletime will calculate it's outputs based on the current date & time.
Outputs
In addition to any existing payloads, a number of additional payloads will be added, which can be utilised later in the flow.
By default, all the additional properties will be added to the message but this can be altered in the node configuration, using checkboxes
Details
The additional payloads added to the flow, and their typical content format are;
- msg.mydate: "Tue Sep 11 2018"
- msg.myymd: "2018-09-11"
- msg.myyear: "2018"
- msg.mymonth: "Sep"
- msg.mymonthf: "September"
- msg.mymonthn: "09"
- msg.mydom: "11"
- msg.mydoy: "86"
- msg.myday: "Tue"
- msg.mydayf: "Tuesday"
- msg.myhourpm: "7"
- msg.myhour: "19"
- msg.mytime: "19:51"
- msg.mytimes: "19:51:17"
- msg.myminute: "51"
- msg.myminutes: "51:17"
- msg.mysecond: "17"
- msg.mymillis: "985"
- msg.myepoch: "1536691877064"
- msg.myrawdate: "2018-09-11T18:51:17.064Z"
- msg.mypm: "PM"
To introduce any of the messages into a flow, simply assign any, or any combination of the messages into a variable, such as; <code>var seconds = msg.myseconds;</code> or to use in a ui_text node add via mustache <code>{{mytimes}}</code>
More advanced date formats can also be constructed, such as <code>{{mytime}}hrs - {{mydom}}/{{mymonth}}</code> to get "20:10hrs - 11/Sep", or <code>{{myhourpm}}:{{myminute}}{{mypm}}</code> to get "8.10PM"
For more advanced timezone handling, <code>node-red-contrib-moment</code> is recommended.