# Difference between two TimeStamp

**URL:** <https://discourse.nodered.org/t/difference-between-two-timestamp/89789>\
**Category:** General\
**Created:** [26 July 2024 12:27 UTC](https://discourse.nodered.org/t/difference-between-two-timestamp/89789 "2024-07-26T12:27:13Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![pgenoud](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@pgenoud](https://discourse.nodered.org/u/pgenoud)\
**Post date:** [26 July 2024 12:27 UTC](https://discourse.nodered.org/t/difference-between-two-timestamp/89789/1 "2024-07-26T12:27:13Z")

</div>

Hello everyone,

I'm quite new to Node Red and starting to use it in an Industriel use case.  
Here is my use case :

- I connected a barcode flashing device (Keyence barcode reader) to my Node Red.
- This device is sending to my Node Red a HeartBeat message every 30 seconds when it is ON.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/6/c6405d1295c6b24ac003837ae58ff19de92c934e.png)

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/6/e6ca4ac8323088a0dc04a9c18d0fbabdb0786241.png)

I would like to test every 1 minute :

- If the last HeartBeat has been sent in the last 5 minutes --\> Then get a TRUE output
- If the last HeartBeat has been sent more than 5 minutes ago --\> Then get a FALSE Output

Do you think it could be done with as less JavaScript as possible ?

Thanks for your help !

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [26 July 2024 12:48 UTC](https://discourse.nodered.org/t/difference-between-two-timestamp/89789/2 "2024-07-26T12:48:05Z")

</div>

JavaScript timestamps are really just numbers in milliseconds. So you can happily subtract them then divide the result by (1000\*60) = 60,000 to get a number in minutes.

You can do this along in a function node or you could simply use a change node with a simple JSONata calculation followed by a switch node.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 July 2024 13:04 UTC](https://discourse.nodered.org/t/difference-between-two-timestamp/89789/3 "2024-07-26T13:04:19Z")

</div>

Or without either Javascript or Jsonata (but using a flow context variable), something like this

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/e/fe6ba57c00010e4a622b7cc66fc9dbc70337cb41.png)

```auto
[{"id":"ced017293aa1331f","type":"inject","z":"44697d3f1dd2e45f","name":"Every minute","props":[{"p":"payload"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":160,"y":80,"wires":[["6af37f61fc1aa754"]]},{"id":"283fc13806e225fd","type":"inject","z":"44697d3f1dd2e45f","name":"Barcode Heartbeat","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":170,"y":180,"wires":[["7e03079522c0bc48"]]},{"id":"7e03079522c0bc48","type":"trigger","z":"44697d3f1dd2e45f","name":"","op1":"true","op2":"false","op1type":"bool","op2type":"bool","duration":"5","extend":true,"overrideDelay":false,"units":"min","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":350,"y":180,"wires":[["cb37dca247ce7a22"]]},{"id":"cb37dca247ce7a22","type":"change","z":"44697d3f1dd2e45f","name":"","rules":[{"t":"set","p":"gotBarcode","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":180,"wires":[[]]},{"id":"6af37f61fc1aa754","type":"switch","z":"44697d3f1dd2e45f","name":"","property":"gotBarcode","propertyType":"flow","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":330,"y":80,"wires":[["97df320f73dea79e"],["2f7d14330b089059"]]},{"id":"97df320f73dea79e","type":"debug","z":"44697d3f1dd2e45f","name":"All good","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":480,"y":60,"wires":[]},{"id":"2f7d14330b089059","type":"debug","z":"44697d3f1dd2e45f","name":"Barcode not received","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":520,"y":100,"wires":[]}]

```

---

<div class="post-metadata">

**Author:** ![pgenoud](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@pgenoud](https://discourse.nodered.org/u/pgenoud)\
**Post date:** [26 July 2024 13:30 UTC](https://discourse.nodered.org/t/difference-between-two-timestamp/89789/4 "2024-07-26T13:30:43Z")

</div>

Thanks a lot ! Very nice to use the Trigger Node, I really didn't think about that. This perfect !  
And working perfectly !  
Thanks

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [9 August 2024 13:31 UTC](https://discourse.nodered.org/t/difference-between-two-timestamp/89789/5 "2024-08-09T13:31:37Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
