Paul-Reed / node-red-contrib-simpletime

A lightweight node-red node to provide and format date and time.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

node-red-contrib-simpletime

NPM version NPM downloads per month NPM downloads total MIT License JavaScript Style Guide

A Node-RED 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; var seconds = msg.myseconds; or to use in a ui_text node add via mustache {{mytimes}}
More advanced date formats can also be constructed, such as {{mytime}}hrs - {{mydom}}/{{mymonth}} to get "20:10hrs - 11/Sep", or {{myhourpm}}:{{myminute}}{{mypm}} to get "8.10PM"

For more advanced timezone handling, node-red-contrib-moment is recommended.

About

A lightweight node-red node to provide and format date and time.

License:Apache License 2.0


Languages

Language:HTML 73.8%Language:JavaScript 26.2%