# Number in Jsonata

**URL:** <https://discourse.nodered.org/t/number-in-jsonata/76289>\
**Category:** General\
**Created:** [8 March 2023 11:08 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289 "2023-03-08T11:08:12Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [8 March 2023 11:08 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/1 "2023-03-08T11:08:13Z")

</div>

Hi, I just want to have the actual hour as a number.  
So I´ve build:

```auto
[
    {
        "id": "9c8c4170df54250b",
        "type": "inject",
        "z": "7b74e2db318add18",
        "name": "Zeitstempel",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "60",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 870,
        "y": 1380,
        "wires": [
            [
                "84bf06adf76d82e3"
            ]
        ]
    },
    {
        "id": "84bf06adf76d82e3",
        "type": "change",
        "z": "7b74e2db318add18",
        "name": "Uhrzeit in h",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "$moment(payload.date).locale(\"de\").tz('Europe/Berlin').format('HH')",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1090,
        "y": 1380,
        "wires": [
            [
                "4101478478a454f1"
            ]
        ]
    },
    {
        "id": "4101478478a454f1",
        "type": "function",
        "z": "7b74e2db318add18",
        "name": "Uhr",
        "func": "msg.payload = Number(msg.payload);\nmsg.topic = \"Uhr\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1110,
        "y": 1340,
        "wires": [
            [
                "fb91e1a51ca592be"
            ]
        ]
    }
]

```

Question: Is it possible to convert in Jsonata expression? so that the function can be deleted?

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [8 March 2023 11:11 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/2 "2023-03-08T11:11:42Z")

</div>

JSONata has the `$number()` function for converting a string to a number.

> **[Numeric functions · JSONata](http://docs.jsonata.org/numeric-functions#number)**
>
> \## \`$number()\`

---

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [8 March 2023 11:56 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/3 "2023-03-08T11:56:23Z")

</div>

yes I saw, but there comes always error:  
$moment(payload.date).locale("de").tz('Europe/Berlin').format('HH')  
$number(msg.payload)

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [8 March 2023 11:58 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/4 "2023-03-08T11:58:28Z")

</div>

Have you tried:

```auto
$number($moment(payload.date).locale("de").tz('Europe/Berlin').format('HH'))

```

---

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [8 March 2023 12:01 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/5 "2023-03-08T12:01:29Z")

</div>

thank you,  
just tried

```auto
$number($$moment(payload.date).locale("de").tz('Europe/Berlin').format('HH'))

```

🙄

Jasonata is incomprehensible to me 🤪

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [8 March 2023 12:25 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/6 "2023-03-08T12:25:13Z")

</div>

> [@Becker](#):
>
> Jasonata is incomprehensible to me

In that case I advise against using it. Use javascript instead. It is a little more efficient that way too.

---

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [8 March 2023 17:04 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/7 "2023-03-08T17:04:14Z")

</div>

ok, show me please ?

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [8 March 2023 22:21 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/8 "2023-03-08T22:21:36Z")

</div>

> [@Becker](#):
>
> I just want to have the actual hour as a number

```auto
msg.payload = new Date().getHours()
// Or
// msg.payload = new Date(msg.payload.date).getHours()
return msg

```

> **[Date.prototype.getHours() - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours)**
>
> The getHours() method of Date instances returns the hours for this date according to local time.

---

<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:** [22 March 2023 22:22 UTC](https://discourse.nodered.org/t/number-in-jsonata/76289/9 "2023-03-22T22:22:32Z")

</div>

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