[{"data":1,"prerenderedAt":83},["ShallowReactive",2],{"integration-node-red-contrib-moment\u002F":3},{"_id":4,"categories":5,"author":8,"description":11,"npmOwners":12,"npmScope":14,"name":4,"ffCertified":15,"downloads":16,"version":18,"updatedAt":19,"maintainers":20,"homepage":23,"bugs":24,"repository":26,"time":29,"lastUpdated":19,"created":30,"license":50,"githubOwner":13,"githubRepo":4,"examples":51,"readme":82},"node-red-contrib-moment",[6,7],"catalogue_date-and-time","catalogue",{"name":9,"url":10},"Julian Knight","https:\u002F\u002Fgithub.com\u002Ftotallyinformation","Node-Red Node that produces formatted Date\u002FTime output using the Moment.JS library. Timezone, dst and locale aware.",[13],"totallyinformation",null,false,{"week":17},7348,"5.0.0","2023-07-16T17:47:47.903Z",[21],{"name":13,"email":22},"jk.npm@totallyinformation.com","https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment",{"url":25},"https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fissues",{"type":27,"url":28},"git","git+https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment.git",{"modified":19,"created":30,"1.0.0":30,"1.0.1":31,"1.0.2":32,"1.0.5":33,"1.0.6":34,"1.0.7":35,"1.0.8":36,"1.0.9":37,"2.0.0":38,"2.0.2":39,"2.0.3":40,"2.0.5":41,"2.0.6":42,"2.0.7":43,"3.0.0":44,"3.0.1":45,"3.0.2":46,"3.0.3":47,"4.0.0":48,"5.0.0":49},"2015-01-29T22:37:48.707Z","2015-01-30T13:19:14.887Z","2015-01-30T13:47:27.566Z","2016-03-30T20:19:56.023Z","2016-06-12T20:41:29.182Z","2016-06-12T20:51:08.648Z","2016-06-12T21:15:29.023Z","2016-06-12T21:28:39.174Z","2016-06-26T21:38:34.497Z","2017-03-19T18:42:27.687Z","2017-04-13T12:04:34.222Z","2017-05-27T15:06:49.981Z","2017-06-15T20:47:04.394Z","2018-01-11T00:18:48.668Z","2018-09-23T16:35:31.874Z","2018-10-25T15:22:57.093Z","2019-03-09T17:23:10.926Z","2019-06-03T20:29:27.672Z","2020-10-04T14:34:08.326Z","2023-07-16T17:47:47.727Z","Apache-2.0",[52,58,64,70,76],{"name":53,"path":54,"url":55,"downloadUrl":56,"flow":57},"basic-example-flow","examples\u002Fbasic-example-flow.json","https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Fbasic-example-flow.json","https:\u002F\u002Fraw.githubusercontent.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fexamples\u002Fbasic-example-flow.json","[{\"id\":\"5cfa0538.e4611c\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"\",\"locale\":\"C\",\"output\":\"payload\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":410,\"y\":300,\"wires\":[[\"c4a52bba.80f5a\"]]},{\"id\":\"c56437dc.020958\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":170,\"y\":300,\"wires\":[[\"5cfa0538.e4611c\"]]},{\"id\":\"c4a52bba.80f5a\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":660,\"y\":300,\"wires\":[]}]",{"name":59,"path":60,"url":61,"downloadUrl":62,"flow":63},"humanize-example-flow","examples\u002Fhumanize-example-flow.json","https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Fhumanize-example-flow.json","https:\u002F\u002Fraw.githubusercontent.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fexamples\u002Fhumanize-example-flow.json","[{\"id\":\"d4f1e907.c039a\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"1\",\"payloadType\":\"num\",\"x\":150,\"y\":2020,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"b69a68f2.86227\",\"type\":\"humanizer\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"input\":\"\",\"x\":590,\"y\":2020,\"wires\":[[\"98a09560.d0f7c8\"]]},{\"id\":\"98a09560.d0f7c8\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload.humanized\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":900,\"y\":2020,\"wires\":[]},{\"id\":\"26b90e19.ec32ea\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"10\",\"payloadType\":\"num\",\"x\":330,\"y\":2040,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"6969869b.9661a8\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"44\",\"payloadType\":\"num\",\"x\":150,\"y\":2100,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"8f921df4.df755\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"90\",\"payloadType\":\"num\",\"x\":330,\"y\":2160,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"bd2fd2a3.3d0b88\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"2669\",\"payloadType\":\"num\",\"x\":150,\"y\":2260,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"4d1b6b65.285d2c\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"2670\",\"payloadType\":\"num\",\"x\":330,\"y\":2260,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"6850f375.2dccdc\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"77399\",\"payloadType\":\"num\",\"x\":150,\"y\":2320,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"67e9d190.0bc4f\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"77400\",\"payloadType\":\"num\",\"x\":330,\"y\":2320,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"86e0a151.259b28\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"27612332\",\"payloadType\":\"num\",\"x\":170,\"y\":2380,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"ad2a6077.ddcdb8\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"45\",\"payloadType\":\"num\",\"x\":330,\"y\":2100,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"ffe556c3.2b9f78\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"89\",\"payloadType\":\"num\",\"x\":150,\"y\":2160,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"6e52a601.24ab18\",\"type\":\"comment\",\"z\":\"7781c60a.76f4a\",\"name\":\"seconds -\\u003e minutes\",\"info\":\"\",\"x\":620,\"y\":2100,\"wires\":[]},{\"id\":\"861de75a.77fa9\",\"type\":\"comment\",\"z\":\"7781c60a.76f4a\",\"name\":\"1 minute -\\u003e 2 minutes\",\"info\":\"\",\"x\":630,\"y\":2160,\"wires\":[]},{\"id\":\"78e43b8.ee91844\",\"type\":\"comment\",\"z\":\"7781c60a.76f4a\",\"name\":\"2 minutes -\\u003e 3 minutes\",\"info\":\"\",\"x\":630,\"y\":2200,\"wires\":[]},{\"id\":\"64ed3c6f.2abaac\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"150\",\"payloadType\":\"num\",\"x\":330,\"y\":2200,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"392a1ef8.e68542\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"149\",\"payloadType\":\"num\",\"x\":150,\"y\":2200,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"aa8e7959.37184\",\"type\":\"comment\",\"z\":\"7781c60a.76f4a\",\"name\":\"44 minutes -\\u003e 1 hour\",\"info\":\"\",\"x\":620,\"y\":2260,\"wires\":[]},{\"id\":\"15094e69.c47492\",\"type\":\"comment\",\"z\":\"7781c60a.76f4a\",\"name\":\"21 minutes -\\u003e 1 day\",\"info\":\"\",\"x\":620,\"y\":2320,\"wires\":[]},{\"id\":\"fe7ccdb4.4deee8\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"27612333\",\"payloadType\":\"num\",\"x\":350,\"y\":2380,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"237ff9ca.f8d1ee\",\"type\":\"comment\",\"z\":\"7781c60a.76f4a\",\"name\":\"10 months -\\u003e 1 year\",\"info\":\"\",\"x\":620,\"y\":2380,\"wires\":[]},{\"id\":\"bb9c80ff.83516\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"300000000\",\"payloadType\":\"num\",\"x\":170,\"y\":2420,\"wires\":[[\"b69a68f2.86227\"]]},{\"id\":\"bc9cfad2.10a04\",\"type\":\"comment\",\"z\":\"7781c60a.76f4a\",\"name\":\"several years\",\"info\":\"\",\"x\":600,\"y\":2420,\"wires\":[]}]",{"name":65,"path":66,"url":67,"downloadUrl":68,"flow":69},"input-timezones-example-flow","examples\u002Finput-timezones-example-flow.json","https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Finput-timezones-example-flow.json","https:\u002F\u002Fraw.githubusercontent.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fexamples\u002Finput-timezones-example-flow.json","[{\"id\":\"67721678.7c81b\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":true,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":170,\"y\":1100,\"wires\":[[\"dd5ac79d.0bb1b\",\"a0b2e140.4ef9e\",\"2cf63a10.6dcd1e\",\"10fbb289.d1d2cd\"]]},{\"id\":\"dd5ac79d.0bb1b\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":true,\"tosidebar\":false,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":400,\"y\":1100,\"wires\":[]},{\"id\":\"af01e075.0c9fa8\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":620,\"y\":1160,\"wires\":[]},{\"id\":\"a0b2e140.4ef9e\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"DD.MM.YYYY HH:mm\",\"locale\":\"de_DE\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":380,\"y\":1160,\"wires\":[[\"af01e075.0c9fa8\"]]},{\"id\":\"2cf63a10.6dcd1e\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e New York\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"YYYY-MM-DD HH:mm\",\"locale\":\"C\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"America\u002FNew_York\",\"x\":400,\"y\":1220,\"wires\":[[\"2a25cf32.873b88\",\"4909536f.ec7034\"]]},{\"id\":\"2a25cf32.873b88\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Cape Verde\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"America\u002FNew_York\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"YYYY-MM-DD HH:mm\",\"locale\":\"de_DE\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Atlantic\u002FCape_Verde\",\"x\":630,\"y\":1280,\"wires\":[[\"216bcf6a.3afc5\",\"f4dad3c9.a2534\"]]},{\"id\":\"216bcf6a.3afc5\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Fiji\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Atlantic\u002FCape_Verde\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"YYYY-MM-DD HH:mm\",\"locale\":\"de_DE\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Pacific\u002FFiji\",\"x\":830,\"y\":1340,\"wires\":[[\"9e860845.c3be28\",\"75961a3d.b294fc\"]]},{\"id\":\"9e860845.c3be28\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Pacific\u002FFiji\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"DD.MM.YYYY HH:mm\",\"locale\":\"de_DE\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":1000,\"y\":1400,\"wires\":[[\"66554f1a.2b0f28\"]]},{\"id\":\"4909536f.ec7034\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":620,\"y\":1220,\"wires\":[]},{\"id\":\"f4dad3c9.a2534\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":860,\"y\":1280,\"wires\":[]},{\"id\":\"75961a3d.b294fc\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":1020,\"y\":1340,\"wires\":[]},{\"id\":\"66554f1a.2b0f28\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":1200,\"y\":1400,\"wires\":[]},{\"id\":\"10fbb289.d1d2cd\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Cape Verde\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"America\u002FNew_York\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"YYYY-MM-DD HH:mm\",\"locale\":\"de_DE\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Atlantic\u002FCape_Verde\",\"x\":410,\"y\":1340,\"wires\":[[\"3bcfd1b5.947c1e\"]]},{\"id\":\"3bcfd1b5.947c1e\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":620,\"y\":1340,\"wires\":[]}]",{"name":71,"path":72,"url":73,"downloadUrl":74,"flow":75},"locale-example-flow","examples\u002Flocale-example-flow.json","https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Flocale-example-flow.json","https:\u002F\u002Fraw.githubusercontent.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fexamples\u002Flocale-example-flow.json","[{\"id\":\"190891f8.377506\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":true,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":170,\"y\":1600,\"wires\":[[\"4fea9ce2.4725cc\",\"3c922d1a.4ec682\",\"e9e897f3.f23db8\",\"e3288390.06fad\",\"cab8a0fe.d50278\",\"a283a279.87395\",\"82edd4e3.7517a8\",\"856447c4.9b118\"]]},{\"id\":\"4fea9ce2.4725cc\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin, DD.MM.YYYY HH:mm\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"DD.MM.YYYY HH:mm\",\"locale\":\"de_DE\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":460,\"y\":1660,\"wires\":[[\"7d005619.57e83\"]]},{\"id\":\"3c922d1a.4ec682\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":true,\"tosidebar\":false,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":400,\"y\":1600,\"wires\":[]},{\"id\":\"7d005619.57e83\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":740,\"y\":1660,\"wires\":[]},{\"id\":\"4eef0593.5d0e24\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":740,\"y\":1720,\"wires\":[]},{\"id\":\"e9e897f3.f23db8\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin, LLL, de_DE\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":\"1\",\"adjType\":\"months\",\"adjDir\":\"add\",\"format\":\"LLL\",\"locale\":\"de_DE\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":430,\"y\":1720,\"wires\":[[\"4eef0593.5d0e24\"]]},{\"id\":\"d0d9146d.59da38\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":740,\"y\":1780,\"wires\":[]},{\"id\":\"e3288390.06fad\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin, LLL, en_EN\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":\"1\",\"adjType\":\"months\",\"adjDir\":\"add\",\"format\":\"LLL\",\"locale\":\"en_EN\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":430,\"y\":1780,\"wires\":[[\"d0d9146d.59da38\"]]},{\"id\":\"cab8a0fe.d50278\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"[Date: ]YYYY-MM-DD  [Time: ]HH:mm:ss\",\"locale\":\"de_DE\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":380,\"y\":1840,\"wires\":[[\"757e3575.b97ea4\"]]},{\"id\":\"757e3575.b97ea4\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":740,\"y\":1840,\"wires\":[]},{\"id\":\"e48a268c.7470a8\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":740,\"y\":1900,\"wires\":[]},{\"id\":\"a283a279.87395\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin, LLL, it_IT\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":\"1\",\"adjType\":\"months\",\"adjDir\":\"add\",\"format\":\"LLL\",\"locale\":\"it_IT\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":420,\"y\":1900,\"wires\":[[\"e48a268c.7470a8\"]]},{\"id\":\"e4176e86.fd4f28\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":740,\"y\":1960,\"wires\":[]},{\"id\":\"82edd4e3.7517a8\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin, calendar\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":\"1\",\"adjType\":\"months\",\"adjDir\":\"add\",\"format\":\"calendar\",\"locale\":\"en_EN\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":420,\"y\":1960,\"wires\":[[\"e4176e86.fd4f28\"]]},{\"id\":\"856447c4.9b118\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin, fromNow\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":\"1\",\"adjType\":\"months\",\"adjDir\":\"add\",\"format\":\"fromNow\",\"locale\":\"en_EN\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":420,\"y\":2020,\"wires\":[[\"dbfff1bf.047e48\"]]},{\"id\":\"dbfff1bf.047e48\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":true,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":740,\"y\":2020,\"wires\":[]}]",{"name":77,"path":78,"url":79,"downloadUrl":80,"flow":81},"timezones-outputformat-example-flow","examples\u002Ftimezones-outputformat-example-flow.json","https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Ftimezones-outputformat-example-flow.json","https:\u002F\u002Fraw.githubusercontent.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fexamples\u002Ftimezones-outputformat-example-flow.json","[{\"id\":\"ad0926de.26a49\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"YYYY-MM-DD HH:mm:ss.SSS\",\"locale\":\"\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":380,\"y\":620,\"wires\":[[\"ee7a9310.023e58\"]]},{\"id\":\"c941333.51fc15\",\"type\":\"inject\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"props\":[{\"p\":\"payload\"}],\"repeat\":\"\",\"crontab\":\"\",\"once\":true,\"onceDelay\":\"\",\"topic\":\"\",\"payload\":\"\",\"payloadType\":\"date\",\"x\":170,\"y\":500,\"wires\":[[\"ad0926de.26a49\",\"f72d19a0.4615e8\",\"e7332173.f40ac8\",\"11105327.b13ee5\",\"f646fc04.b042f8\",\"bce45467.abbc2\",\"729d46e9.f2e86\",\"5ee3991e.5952b\"]]},{\"id\":\"ee7a9310.023e58\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":680,\"y\":620,\"wires\":[]},{\"id\":\"f72d19a0.4615e8\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":true,\"tosidebar\":false,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":400,\"y\":500,\"wires\":[]},{\"id\":\"e7332173.f40ac8\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e UTC (Zulu time)\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"\",\"locale\":\"C\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":420,\"y\":560,\"wires\":[[\"b95b0b21.615e2\"]]},{\"id\":\"b95b0b21.615e2\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":680,\"y\":560,\"wires\":[]},{\"id\":\"11105327.b13ee5\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e New York\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"YYYY-MM-DD HH:mm\",\"locale\":\"\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"America\u002FNew_York\",\"x\":400,\"y\":800,\"wires\":[[\"fccc4c17.8cc668\"]]},{\"id\":\"fccc4c17.8cc668\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"converted\",\"statusType\":\"auto\",\"x\":680,\"y\":800,\"wires\":[]},{\"id\":\"f646fc04.b042f8\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e adjustment + 1 yr\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":\"1\",\"adjType\":\"years\",\"adjDir\":\"add\",\"format\":\"DD.MM.YYYY HH:mm\",\"locale\":\"\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":430,\"y\":860,\"wires\":[[\"e040c9ca.d87e18\"]]},{\"id\":\"e040c9ca.d87e18\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"converted\",\"statusType\":\"auto\",\"x\":680,\"y\":860,\"wires\":[]},{\"id\":\"bce45467.abbc2\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e adjustment - 1week\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":\"1\",\"adjType\":\"weeks\",\"adjDir\":\"subtract\",\"format\":\"DD.MM.YYYY HH:mm\",\"locale\":\"C\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":430,\"y\":920,\"wires\":[[\"b5e35173.54ef1\"]]},{\"id\":\"b5e35173.54ef1\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"converted\",\"statusType\":\"auto\",\"x\":680,\"y\":920,\"wires\":[]},{\"id\":\"5a45bddc.198614\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":680,\"y\":680,\"wires\":[]},{\"id\":\"729d46e9.f2e86\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"DD.MM.YYYY HH:mm\",\"locale\":\"\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":380,\"y\":680,\"wires\":[[\"5a45bddc.198614\"]]},{\"id\":\"453f43aa.10f854\",\"type\":\"debug\",\"z\":\"7781c60a.76f4a\",\"name\":\"\",\"active\":false,\"tosidebar\":true,\"console\":false,\"tostatus\":true,\"complete\":\"payload\",\"targetType\":\"msg\",\"statusVal\":\"payload\",\"statusType\":\"auto\",\"x\":680,\"y\":740,\"wires\":[]},{\"id\":\"5ee3991e.5952b\",\"type\":\"moment\",\"z\":\"7781c60a.76f4a\",\"name\":\"-\\u003e Berlin\",\"topic\":\"\",\"input\":\"\",\"inputType\":\"msg\",\"inTz\":\"Europe\u002FBerlin\",\"adjAmount\":0,\"adjType\":\"days\",\"adjDir\":\"add\",\"format\":\"LLLL\",\"locale\":\"\",\"output\":\"\",\"outputType\":\"msg\",\"outTz\":\"Europe\u002FBerlin\",\"x\":380,\"y\":740,\"wires\":[[\"453f43aa.10f854\"]]}]","\u003Ch1 id=\"node-red-contrib-moment\">\u003Ca class=\"header-anchor\" href=\"#node-red-contrib-moment\">node-red-contrib-moment\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>\u003Cstrong>Please note that this node is unlikely to recieve further enhancements now that moment.js is built into JSONata and so is available from change, function and other nodes.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fnodered.org\">Node-RED\u003C\u002Fa> node \u003Cem>\u003Cstrong>moment\u003C\u002Fstrong>\u003C\u002Fem> produces a nicely formatted Date\u002FTime string using the Moment.JS library. The node is fully time zone\u002FDST\u002Flocale aware.\u003C\u002Fp>\n\u003Cp>Node \u003Cem>\u003Cstrong>humanizer\u003C\u002Fstrong>\u003C\u002Fem> converts time durations (time spans) into textual descriptions (e.g. 2 minutes).\u003C\u002Fp>\n\u003Cp>Both nodes are locale aware regarding the language of the output strings.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fimages\u002Fnode-appearance.png\" alt=\"node-appearance\" title=\"Node appearance\" \u002F>\u003Cbr \u002F>\n\u003Cstrong>Fig. 1:\u003C\u002Fstrong> Node appearance\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fnodered.org\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Node--RED-red\" alt=\"Platform\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fnode-red-contrib-moment\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnode-red-contrib-moment.svg?logo=npm\" alt=\"NPM Version\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fnode-red-contrib-moment\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdt\u002Fnode-red-contrib-moment.svg\" alt=\"NPM Total Downloads\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fnode-red-contrib-moment\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnode-red-contrib-moment.svg\" alt=\"NPM Downloads per month\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Ftotallyinformation\u002Fnode-red-contrib-moment.svg\" alt=\"GitHub last commit\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fwatchers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FTotallyInformation\u002Fnode-red-contrib-moment.svg\" alt=\"GitHub stars\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fwatchers\u002FTotallyInformation\u002Fnode-red-contrib-moment.svg\" alt=\"GitHub watchers\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FTotallyInformation\u002Fnode-red-contrib-moment.svg\" alt=\"GitHub license\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fnode-red-contrib-moment\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnode\u002Fv\u002Fnode-red-contrib-moment.svg\" alt=\"Min Node Version\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"http:\u002F\u002Fpackagequality.com\u002F#?package=node-red-contrib-moment\">\u003Cimg src=\"http:\u002F\u002Fnpm.packagequality.com\u002Fshield\u002Fnode-red-contrib-moment.png\" alt=\"Package Quality\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdavid\u002FTotallyInformation\u002Fnode-red-contrib-moment.svg\" alt=\"Dependencies\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fissues\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-raw\u002FTotallyInformation\u002Fnode-red-contrib-moment.svg\" alt=\"Open Issues\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fissues?q=is%3Aissue+is%3Aclosed\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-closed-raw\u002FTotallyInformation\u002Fnode-red-contrib-moment.svg\" alt=\"Closed Issues\" \u002F>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Based on thoughts from a \u003Ca href=\"https:\u002F\u002Fgroups.google.com\u002Fd\u002Fmsg\u002Fnode-red\u002FSXEGvfFLfQA\u002FfhJCGBWvYEAJ\">conversation in the Node-RED Google Group\u003C\u002Fa>. Updated with timezone\u002Flocale capabilities after Jaques44's initial work. Updated with +\u002F- adjustments after \u003Ca href=\"https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!topic\u002Fnode-red\u002Fu3qoISFoKus\">another conversion in the Google Group\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Ca name=\"installation\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch1 id=\"installation\">\u003Ca class=\"header-anchor\" href=\"#installation\">Installation\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>\u003Ca name=\"installation_in_node-red\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2 id=\"in-node-red-preferred\">\u003Ca class=\"header-anchor\" href=\"#in-node-red-preferred\">In Node-RED (preferred)\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Via Manage Palette -&gt; Search for \"node-red-contrib-moment\"\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca name=\"installation_in_a_shell\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2 id=\"in-a-shell\">\u003Ca class=\"header-anchor\" href=\"#in-a-shell\">In a shell\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Basic installation:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>go to the Node-RED \"userDir\" folder, typically \u003Ccode>~\u002F.node-red\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>run \u003Ccode>npm install node-red-contrib-moment\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>To get the latest development version, install with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>run \u003Ccode>npm install TotallyInformation\u002Fnode-red-contrib-moment\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca name=\"moment_usage\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch1 id=\"usage-of-node-moment\">\u003Ca class=\"header-anchor\" href=\"#usage-of-node-moment\">Usage of node \u003Cem>moment\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>The easiest usage of the node is feeding it with an timestamp inject:\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fimages\u002Fmoment-basic-usage.png\" alt=\"moment-basic-usage\" title=\"Node moment usage\" \u002F>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Fig. 2:\u003C\u002Fstrong> Basic usage node \u003Cem>moment\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch1 id=\"updates\">\u003Ca class=\"header-anchor\" href=\"#updates\">Updates\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>Please see the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002FCHANGELOG.md\">CHANGELOG\u003C\u002Fa> document.\u003C\u002Fp>\n\u003Ch1 id=\"usage\">\u003Ca class=\"header-anchor\" href=\"#usage\">Usage\u003C\u002Fa>\u003C\u002Fh1>\n\u003Ch2 id=\"moment\">\u003Ca class=\"header-anchor\" href=\"#moment\">Moment\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>The node generally expects an input from the incoming msg. By default, this is msg.payload. If it is a recognisable date\u002Ftime, it will apply a format and output the resulting string or object accordingly.\u003C\u002Fp>\n\u003Cp>Input and output time zones are settable as is the output locale. All of which default to the host systems tz\u002Flocale.\u003C\u002Fp>\n\u003Cp>This allows the node to be used to translate from one time zone to another. It also will take into account daylight savings time (DST).\u003C\u002Fp>\n\u003Cp>You can also apply an adjustment to the date\u002Ftime by adding or subtracting an amount.\u003C\u002Fp>\n\u003Cp>\u003Ca name=\"moment_node_configuration\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2 id=\"configuration-of-node-moment\">\u003Ca class=\"header-anchor\" href=\"#configuration-of-node-moment\">Configuration of node \u003Cem>moment\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fimages\u002Fmoment-node-configuration.png\" alt=\"moment-node-settings\" title=\"Node moment properties\" \u002F>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Fig. 3:\u003C\u002Fstrong> Properties of node \u003Cem>moment\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch3 id=\"input-from-and-output-to\">\u003Ca class=\"header-anchor\" href=\"#input-from-and-output-to\">\u003Cem>Input from\u003C\u002Fem> and \u003Cem>Output to\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>These two configuration properties define the \u003Ccode>msg\u003C\u002Fcode> properties in which the input and output data are read from resp. written to. Default is \u003Ccode>msg.payload\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"input-timezone-and-output-timezone\">\u003Ca class=\"header-anchor\" href=\"#input-timezone-and-output-timezone\">\u003Cem>Input Timezone\u003C\u002Fem> and \u003Cem>Output Timezone\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ch4 id=\"input-timezone\">\u003Ca class=\"header-anchor\" href=\"#input-timezone\">\u003Cem>Input Timezone\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh4>\n\u003Cp>This property defines the timezone of the time fed via the input \u003Ccode>msg\u003C\u002Fcode>. Internally the input time is converted into UTC for further processing.\u003Cbr \u002F>\nThe format of \u003Cem>Input Timezone\u003C\u002Fem> is in the format \u003Cem>region\u002Flocation\u003C\u002Fem>, e.g. Europe\u002FLondon. See also timezone lists e.g. built in to \u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Ftimezone\u002F\">moment-timezone\u003C\u002Fa> or given in \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FList_of_tz_database_time_zones\">wikipedia\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: Spellings are not validated, if it doesn't seem to work, check the validity of \u003Cem>region\u002Flocation\u003C\u002Fem> with these timezone lists.\u003C\u002Fp>\n\u003Cp>The following behaviour is valid:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>If the input data contains a Node-RED timestamp this property is ommitted\n\u003Cul>\n\u003Cli>If the host system has a local timezone set (e.g. \u003Ccode>dpkg-reconfigure tzdata\u003C\u002Fcode> on Linux), the input timestamp is related to this local timezone.\u003C\u002Fli>\n\u003Cli>If the host system has no local timezone set, the input timestamp is related to UTC.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>If the input data contains an interpretable string, this property is used (to convert internally to UTC).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If left blank in settings, this field may be set from the incoming \u003Ccode>msg.inTz\u003C\u002Fcode> property.\u003C\u002Fp>\n\u003Ch4 id=\"output-timezone\">\u003Ca class=\"header-anchor\" href=\"#output-timezone\">\u003Cem>Output Timezone\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh4>\n\u003Cp>This property defines the timezone of the time emitted via the output \u003Ccode>msg\u003C\u002Fcode>.\nThe format of \u003Cem>Output Timezone\u003C\u002Fem> is described above (see \u003Cem>Input Timezone\u003C\u002Fem>).\u003C\u002Fp>\n\u003Cp>The following behaviour is valid:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>If \u003Cem>Output Format\u003C\u002Fem> is left blank, the output format is in 'Zulu' format, independent of the contents of the additional properties \u003Cem>Output Timezone\u003C\u002Fem> and \u003Cem>Locale\u003C\u002Fem>.\u003C\u002Fp>\n\u003Cp>Zulu format see: https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Fas-iso-string\u002F\u003Cbr \u002F>\n(Example: 2013-02-04T22:44:30.652Z)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If left blank in settings, this field may be set from the incoming \u003Ccode>msg.outTz\u003C\u002Fcode> property.\u003C\u002Fp>\n\u003Ch3 id=\"adjustment\">\u003Ca class=\"header-anchor\" href=\"#adjustment\">\u003Cem>Adjustment\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Using this property, the time can be adjusted by a manually given value. Adjustments can be positive or negative and can be given in milliseconds, seconds, minutes, hours, days, weeks, months, quarters, years.\u003C\u002Fp>\n\u003Ch3 id=\"output-format-and-locale\">\u003Ca class=\"header-anchor\" href=\"#output-format-and-locale\">\u003Cem>Output Format\u003C\u002Fem> and \u003Cem>Locale\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>These two properties in combination define the output format emitted in the output \u003Ccode>msg\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch4 id=\"output-format\">\u003Ca class=\"header-anchor\" href=\"#output-format\">\u003Cem>Output Format\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh4>\n\u003Cp>The \u003Cem>Output Format\u003C\u002Fem> property defines the format and is described in the \u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Fformat\u002F\">moment.js displaying format section\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>It may be any format string defined by moment.js. The formatting additions from \u003Cem>moment-timezone\u003C\u002Fem> are also allowed.  In addition, further (not case sensitive, alternatives in brackets) format strings are also allowed.\u003C\u002Fp>\n\u003Cp>Note that with the exception of ISO8601, other formats are in the specified timezone &amp; DST. If not specified, the output timezone\u002FDST is the same as the input.\u003C\u002Fp>\n\u003Cp>Use an output timezone of UTC to force output to that.\u003C\u002Fp>\n\u003Ch5 id=\"format-string-defined-by-momentjs\">\u003Ca class=\"header-anchor\" href=\"#format-string-defined-by-momentjs\">Format string defined by moment.js\u003C\u002Fa>\u003C\u002Fh5>\n\u003Cp>The format string defined by moment.js basically has two options:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cem>\u003Cstrong>Manual given format string:\u003C\u002Fstrong>\u003C\u002Fem> This is a string where the time\u002Fdate parts are represented by characters. Also text parts are allowed. Examples:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\"DD.MM.YYYY HH:mm\" gives \u003Cem>20.09.2020 08:30\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\"dddd, MMMM Do YYYY, h:mm:ss a\" gives \u003Cem>Sunday, February 14th 2010, 3:25:50 pm\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\"[Today is] dddd\" gives \u003Cem>Today is Sunday\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\"[Date: ]YYYY-MM-DD  [Time: ]HH:mm:ss\" gives \u003Cem>Date: 2020-09-20  Time: 08:31:45\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Ffromnow\u002F\">\"fromNow\"\u003C\u002Fa> gives \u003Cem>in a month\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Fcalendar-time\u002F\">\"calendar\"\u003C\u002Fa> gives \u003Cem>Last Monday\u003C\u002Fem>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>\u003Cstrong>Predefined localized string:\u003C\u002Fstrong>\u003C\u002Fem> This is a string which defines a localized format. Examples:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\"LLL\" gives \u003Cem>October 20, 2020 8:33 AM\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\"LTS\" gives \u003Cem>8:30:25 PM\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\"llll\" gives \u003Cem>Thu, Sep 4, 1986 8:30 PM\u003C\u002Fem>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For more options see https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Fformat\u002F.\u003C\u002Fp>\n\u003Ch5 id=\"format-string-is-left-blank-resp-is-iso8601-or-iso\">\u003Ca class=\"header-anchor\" href=\"#format-string-is-left-blank-resp-is-iso8601-or-iso\">Format string is left blank resp. is \"ISO8601\" or \"ISO\"\u003C\u002Fa>\u003C\u002Fh5>\n\u003Cp>In this case the output is in ISO 8602 format, e.g. \"2015-01-28T16:24:48.123Z\".\u003C\u002Fp>\n\u003Cp>Note that ISO8601 formatted output is ALWAYS in UTC ('Z', Zulu time) not local, no matter what output timezone you may specify.\u003C\u002Fp>\n\u003Cp>See also \u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Fas-iso-string\u002F\">\u003Ccode>moment().toISOString()\u003C\u002Fcode>\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch5 id=\"format-string-is-date-resp-jsdate\">\u003Ca class=\"header-anchor\" href=\"#format-string-is-date-resp-jsdate\">Format string is \"date\" resp. \"jsDate\"\u003C\u002Fa>\u003C\u002Fh5>\n\u003Cp>This is a \u003Cem>Javascript Date object\u003C\u002Fem> in the form \u003Ccode>{years:nnnn, months:n, date:n, hours:n, minutes:n, seconds:n, milliseconds:n}\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>It may be used for manual (fixed) data\u002Ftime values.\u003C\u002Fp>\n\u003Cp>WARNING: moment.js has a bizarre object format where the month is zero-based (0-11) instead of 1-based (1-12) like all the other elements are. I don't currently know why, I've raised an upstream issue but this appears to be a deliberate decision for some strange reason.\u003C\u002Fp>\n\u003Cp>See also \u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Fas-object\u002F\">\u003Ccode>moment().toObject()\u003C\u002Fcode>\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch5 id=\"format-string-is-fromnow-resp-timeago\">\u003Ca class=\"header-anchor\" href=\"#format-string-is-fromnow-resp-timeago\">Format string is \"fromNow\" resp. \"timeAgo\"\u003C\u002Fa>\u003C\u002Fh5>\n\u003Cp>This is a human readable output, e.g. \u003Cem>30 minutes ago\u003C\u002Fem> or \u003Cem>in a month\u003C\u002Fem> (only rough time spans are given in this output format type, see also the \u003Cem>humanizer\u003C\u002Fem> example below). The time span is derived from the actual time and the time fed into the node.\u003C\u002Fp>\n\u003Cp>See also \u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Ffromnow\u002F\">\u003Ccode>moment().fromNow()\u003C\u002Fcode>\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch5 id=\"format-string-is-calendar-resp-aroundnow\">\u003Ca class=\"header-anchor\" href=\"#format-string-is-calendar-resp-aroundnow\">Format string is \"calendar\" resp. \"aroundNow\"\u003C\u002Fa>\u003C\u002Fh5>\n\u003Cp>This is a human readable alternative, e.g. \u003Cem>Last Monday\u003C\u002Fem> or \u003Cem>Tomorrow 2:30pm\u003C\u002Fem>.\nNote that dates beyond a week from now are output as yyyy-mm-dd.\u003C\u002Fp>\n\u003Cp>See also \u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Fcalendar-time\u002F\">\u003Ccode>moment().calendar()\u003C\u002Fcode>\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch5 id=\"format-string-is-date-resp-jsdate-1\">\u003Ca class=\"header-anchor\" href=\"#format-string-is-date-resp-jsdate-1\">Format string is \"date\" resp. \"jsDate\"\u003C\u002Fa>\u003C\u002Fh5>\n\u003Cp>This output format type is actually not working (see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fissues\u002F37\">issue #37\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch4 id=\"locale\">\u003Ca class=\"header-anchor\" href=\"#locale\">\u003Cem>Locale\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh4>\n\u003Cp>In case of a textual output string contents the \u003Cem>Locale\u003C\u002Fem> property defines the language of the textual parts (e.g. \"October\" vs. \"Oktober\" vs. \"ottobre\" vs. \"lokakuuta\").\u003C\u002Fp>\n\u003Cp>If the output is shown in the wrong format, such as dates in US mm\u002Fdd\u002Fyy format, change the output locale. For example, using en_gb will force short dates to output in dd\u002Fmm\u002Fyy format. The default is en which moment assumes means the USA :-(\u003C\u002Fp>\n\u003Cp>See also \u003Ca href=\"https:\u002F\u002Flh.2xlibre.net\u002Flocales\u002F\">Locale Helper\u003C\u002Fa> (Note: Not every locale given there is supported).\u003C\u002Fp>\n\u003Ch3 id=\"topic-additional-topic\">\u003Ca class=\"header-anchor\" href=\"#topic-additional-topic\">\u003Cem>Topic\u003C\u002Fem> (additional topic)\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Using this property you can add an additional topic to the output \u003Ccode>msg.topic\u003C\u002Fcode>.\nA resulting \u003Ccode>msg\u003C\u002Fcode> may be (value \"myTopicString\"):\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{\"_msgid\":\"b16b00b5.bada55\",\"payload\":\"2020-09-20T12:47:55.143Z\",\"topic\":\"myTopicString\"}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"input-of-node-moment\">\u003Ca class=\"header-anchor\" href=\"#input-of-node-moment\">Input of node \u003Cem>moment\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Input values in the object \u003Cstrong>Input from\u003C\u002Fstrong> can be of the following types:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cem>\u003Cstrong>timestamp:\u003C\u002Fstrong>\u003C\u002Fem> The current date\u002Ftime is used as input.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>\u003Cstrong>msg\u003C\u002Fstrong>\u003C\u002Fem>, \u003Cem>\u003Cstrong>global\u003C\u002Fstrong>\u003C\u002Fem> or \u003Cem>\u003Cstrong>flow\u003C\u002Fstrong>\u003C\u002Fem> and the given property is empty or does not exist: The current date\u002Ftime is used as input.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>\u003Cstrong>JSON date time object:\u003C\u002Fstrong>\u003C\u002Fem> This data time object may contain the following elements: \u003Cem>years\u003C\u002Fem>, \u003Cem>months\u003C\u002Fem>, \u003Cem>days\u003C\u002Fem>, \u003Cem>hours\u003C\u002Fem>, \u003Cem>minutes\u003C\u002Fem>, \u003Cem>seconds\u003C\u002Fem>, \u003Cem>milliseconds\u003C\u002Fem>.\u003C\u002Fp>\n\u003Cp>Example: \u003Ccode>{\"years\":2020,\"months\":1,\"date\":11,\"hours\":5,\"minutes\":6}\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>If elements are not given (e.g. \u003Cem>years\u003C\u002Fem> and \u003Cem>months\u003C\u002Fem> are missing in the object) the actual time values are used instead.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>\u003Cstrong>a property containing a string that is a recognizable date\u002Ftime:\u003C\u002Fstrong>\u003C\u002Fem> The value will be interpreted and processed.\u003C\u002Fp>\n\u003Cp>Example: \u003Ccode>2020-02-11T05:06\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>\u003Cstrong>a property containing a numeric value:\u003C\u002Fstrong>\u003C\u002Fem> The value will be assumed to be a \u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Funix-timestamp-milliseconds\u002F\">UNIX time value\u003C\u002Fa> (ms since 1970-01-01). Remark: This is the format which the node \u003Cem>Inject\u003C\u002Fem> emits at option \u003Cstrong>timestamp\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cem>\u003Cstrong>a property containing a string that is not a recognisable date\u002Ftime (including \u003Ccode>null\u003C\u002Fcode>):\u003C\u002Fstrong>\u003C\u002Fem> Then no conversion takes place, the output will be an empty string plus a debug warning.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Note that parsing date\u002Ftime strings is a hard problem. moment.parseFormat helps but it isn't magic. We assume that ambiguous input dates such as 3\u002F5\u002F05 are in EU\u002FUK format dd\u002Fmm\u002Fyy unless either the input timezone is in America or the locale is set to en_US.\u003C\u002Fp>\n\u003Ch2 id=\"outputs-of-node-moment\">\u003Ca class=\"header-anchor\" href=\"#outputs-of-node-moment\">Outputs of node \u003Cem>moment\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>If the \u003Cstrong>output\u003C\u002Fstrong> property is not \u003Ccode>msg.payload\u003C\u002Fcode> the input \u003Ccode>msg.payload\u003C\u002Fcode> is retained in the output.\u003C\u002Fp>\n\u003Cp>The date\u002Ftime output is a formatted string if the configuration property \u003Cem>\u003Cstrong>Output Format\u003C\u002Fstrong>\u003C\u002Fem> is anything other than \u003Cem>date\u003C\u002Fem> resp. \u003Cem>jsDate\u003C\u002Fem> or \u003Cem>object\u003C\u002Fem> in which case the output is a Javascript date object or an object as described below respectively.\u003C\u002Fp>\n\u003Cp>Output string formatting is controlled by the \u003Cem>\u003Cstrong>Locale\u003C\u002Fstrong>\u003C\u002Fem> and the \u003Cem>\u003Cstrong>Output Format\u003C\u002Fstrong>\u003C\u002Fem> setting. Note that the output Timezone is ignored for ISO8601 output (the default), such output is always in UTC. For other formats, the output will be in the specified timezone which defaults to your host timezone.\u003C\u002Fp>\n\u003Cp>Specifying different input and output timezones allows you to translated between them.\u003C\u002Fp>\n\u003Cp>The output \u003Ccode>msg\u003C\u002Fcode> will pass through the input \u003Ccode>msg.topic\u003C\u002Fcode> unless it is overridden by the \u003Cem>\u003Cstrong>Topic\u003C\u002Fstrong>\u003C\u002Fem> configuration property. If the \u003Cem>\u003Cstrong>Output to\u003C\u002Fstrong>\u003C\u002Fem> field is changed from the default \u003Ccode>msg.payload\u003C\u002Fcode>, the input \u003Ccode>msg.payload\u003C\u002Fcode> will also be passed through.\u003C\u002Fp>\n\u003Ch1 id=\"usage-of-node-humanizer\">\u003Ca class=\"header-anchor\" href=\"#usage-of-node-humanizer\">Usage of node \u003Cem>humanizer\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>This node converts an input time span to a humanized text string to the output \u003Ccode>msg.payload.humanized\u003C\u002Fcode>. The language of the output string is derived from the locale of the system, i.e. it is not changeable (like the \u003Cem>Locale\u003C\u002Fem> property of the \u003Cem>moment\u003C\u002Fem> node).\u003C\u002Fp>\n\u003Cp>See also \u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdurations\u002Fhumanize\u002F\">moment.duration().humanize()\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>(Contributed by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FLaro88\">Laro88\u003C\u002Fa>)\u003C\u002Fp>\n\u003Ch2 id=\"configuration-of-node-humanizer\">\u003Ca class=\"header-anchor\" href=\"#configuration-of-node-humanizer\">Configuration of node \u003Cem>humanizer\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fimages\u002Fhumanizer-node-configuration.png\" alt=\"humanizer-node-settings\" title=\"Node humanizer properties\" \u002F>\u003Cbr \u002F>\n\u003Cstrong>Fig. 4:\u003C\u002Fstrong> Properties of node \u003Cem>humanizer\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch3 id=\"input-variable\">\u003Ca class=\"header-anchor\" href=\"#input-variable\">'Input variable'\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>This property defines the input \u003Ccode>msg.payload\u003C\u002Fcode> property which shall be used for the conversion. If left blank, \u003Ccode>msg.payload\u003C\u002Fcode> is used.\u003C\u002Fp>\n\u003Ch2 id=\"input-of-node-humanizer\">\u003Ca class=\"header-anchor\" href=\"#input-of-node-humanizer\">Input of node \u003Cem>humanizer\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>The input is a number which defines a time span in seconds.\u003C\u002Fp>\n\u003Ch2 id=\"outputs-of-node-humanizer\">\u003Ca class=\"header-anchor\" href=\"#outputs-of-node-humanizer\">Outputs of node \u003Cem>humanizer\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>The output is a string object in \u003Ccode>msg.payload.humanized\u003C\u002Fcode>.\u003Cbr \u002F>\nThe time spans are evaluated in intervals, see \u003Cem>humanizer\u003C\u002Fem> example for details.\u003C\u002Fp>\n\u003Ch1 id=\"examples\">\u003Ca class=\"header-anchor\" href=\"#examples\">Examples\u003C\u002Fa>\u003C\u002Fh1>\n\u003Chr \u002F>\n\u003Cp>\u003Cstrong>Remark\u003C\u002Fstrong>: Example flows are present in the examples subdirectory. In Node-RED they can be imported via the import function and then selecting \u003Cem>Examples\u003C\u002Fem> in the vertical tab menue.\u003Cbr \u002F>\nAll example flows can also be found in the examples folder of this package.\u003C\u002Fp>\n\u003Chr \u002F>\n\u003Ch2 id=\"usage-of-the-moment-node\">\u003Ca class=\"header-anchor\" href=\"#usage-of-the-moment-node\">Usage of the \u003Cem>moment\u003C\u002Fem> node\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>The basic usage is shown in Fig. 2. The following examples shall give an overview how to use the rich configuration properties.\u003C\u002Fp>\n\u003Ch3 id=\"usage-of-configuration-properties-output-timezone-output-format-and-adjustment\">\u003Ca class=\"header-anchor\" href=\"#usage-of-configuration-properties-output-timezone-output-format-and-adjustment\">Usage of configuration properties \u003Cem>Output Timezone\u003C\u002Fem>, \u003Cem>Output Format\u003C\u002Fem> and \u003Cem>Adjustment\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>A sample flow is:\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fimages\u002Fmoment-timezone-format-adjustment.png?raw=true\" alt=\"Alt text\" title=\"Output Timezone, Output Format and Adjustment\" \u002F>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Ftimezones-outputformat-example-flow.json\">\u003Cstrong>output-timezone-format-adjustment flow\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n\u003Cstrong>Fig. 5:\u003C\u002Fstrong> Example flow showing the usage of \u003Cem>Output Timezone\u003C\u002Fem>, \u003Cem>Output Format\u003C\u002Fem> and \u003Cem>Adjustment\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch3 id=\"usage-of-configuration-property-input-timezone\">\u003Ca class=\"header-anchor\" href=\"#usage-of-configuration-property-input-timezone\">Usage of configuration property \u003Cem>Input Timezone\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>A sample flow is:\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fimages\u002Fmoment-string-input.png?raw=true\" alt=\"Alt text\" title=\"Input Timezone\" \u002F>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Finput-timezones-example-flow.json\">\u003Cstrong>input-timezone flow\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n\u003Cstrong>Fig. 6:\u003C\u002Fstrong> Example flow showing the usage of \u003Cem>Input Timezone\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch3 id=\"usage-of-configuration-properties-output-format-and-locale\">\u003Ca class=\"header-anchor\" href=\"#usage-of-configuration-properties-output-format-and-locale\">Usage of configuration properties \u003Cem>Output Format\u003C\u002Fem> and \u003Cem>Locale\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>A sample flow is:\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fimages\u002Fmoment-locale-format.png?raw=true\" alt=\"Alt text\" title=\"Output Format and Locale\" \u002F>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Flocale-example-flow.json\">\u003Cstrong>output-format-locale flow\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n\u003Cstrong>Fig. 7:\u003C\u002Fstrong> Example flow showing the usage of \u003Cem>Output Format\u003C\u002Fem> and \u003Cem>Locale\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch2 id=\"usage-of-the-humanizer-node\">\u003Ca class=\"header-anchor\" href=\"#usage-of-the-humanizer-node\">Usage of the \u003Cem>humanizer\u003C\u002Fem> node\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>A sample flow is:\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fmaster\u002Fimages\u002Fhumanizer-time-limits.png?raw=true\" alt=\"Alt text\" title=\"Humanizer node\" \u002F>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u002Fnode-red-contrib-moment\u002Fblob\u002Fmaster\u002Fexamples\u002Fhumanize-example-flow.json\">\u003Cstrong>humanizer flow\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n\u003Cstrong>Fig. 8:\u003C\u002Fstrong> Example flow showing the usage of the \u003Cem>humanizer\u003C\u002Fem> node\u003C\u002Fp>\n\u003Ch1 id=\"depends-on\">\u003Ca class=\"header-anchor\" href=\"#depends-on\">Depends on\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fmomentjs.com\u002Fdocs\">Moment.js\u003C\u002Fa> - Clever date\u002Ftime handler for Node.js and browsers\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fmomentjs.com\u002Ftimezone\u002Fdocs\">Moment-Timezone\u003C\u002Fa> - Adds timezone and locale awareness to Moment.js\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmomentjs.com\u002Fdocs\u002F#\u002Fdisplaying\u002Fas-iso-string\u002F\">Zulu\u003C\u002Fa> time format\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FList_of_tz_database_time_zones\u002F\">Timezones\u003C\u002Fa> (tzdata)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgr2m\u002Fmoment-parseformat\">Moment-ParseFormat\u003C\u002Fa> - Tries to interpret input strings as date\u002Ftimes and creates a format string that moment.js can use.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Flh.2xlibre.net\u002Flocales\u002F\">Locale Helper\u003C\u002Fa> - lists locale options\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fnodered.org\u002Fdocs\u002F\">Node-RED\u003C\u002Fa> - of course!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch1 id=\"to-do\">\u003Ca class=\"header-anchor\" href=\"#to-do\">To Do\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>Summary of things I'd like to do with the moment node (not necessarily immediately):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>[ ] Add some additional nodes for doing date\u002Ftime calculations - partly complete, can do simple add\u002Fsubtract from main node\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>[ ] Add additional node for doing duration calculations\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>[ ] Add a combo box to the Format field with common formats pre-populated\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>[x] Improve the error messages when Moment.JS fails to interpret the input (say why)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>[x] Allow more input date\u002Ftime formats - turns out Moment.JS doesn't really help here. At present, I see too many input failures from US\u002FUK date formats, etc.\nIt would be great if I could parse \"human\" inputs like \"tomorrow\" and \"2 minutes from now\". We can output them now but not input them. As of v1.0.5, a localisation parameter is supported.\u003C\u002Fp>\n\u003Cp>\u003Cs>Partly complete: Added the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgr2m\u002Fmoment.parseFormat\">parseFormat plugin\u003C\u002Fa>. That failed, see code for details.\u003C\u002Fs> Now complete.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch1 id=\"license\">\u003Ca class=\"header-anchor\" href=\"#license\">License\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>This code is Open Source under an Apache 2 License. Please see the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fapache2-license.txt\">apache2-license.txt file\u003C\u002Fa> for details.\u003C\u002Fp>\n\u003Cp>You may not use this code except in compliance with the License. You may obtain an original copy of the License at\u003C\u002Fp>\n\u003Cpre>\u003Ccode>http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an\n\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Please see the\nLicense for the specific language governing permissions and limitations under the License.\u003C\u002Fp>\n\u003Ch1 id=\"author\">\u003Ca class=\"header-anchor\" href=\"#author\">Author\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fuk.linkedin.com\u002Fin\u002Fjulianknight2\u002F\">Julian Knight\u003C\u002Fa> (\u003Ca href=\"https:\u002F\u002Fwww.totallyinformation.com\">Totally Information\u003C\u002Fa>), https:\u002F\u002Fgithub.com\u002Ftotallyinformation\u003C\u002Fp>\n\u003Ch1 id=\"contributorscredits\">\u003Ca class=\"header-anchor\" href=\"#contributorscredits\">Contributors\u002FCredits\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvicary\">Vicary Archangel\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fshrickus\">Steve Rickus\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FLaro88\">Jes Ramsing\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJacques44\">Jacques W\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FStephanStS\">StephanStS\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Many thanks for the contributions.\u003C\u002Fp>\n\u003Ch1 id=\"feedback-and-support\">\u003Ca class=\"header-anchor\" href=\"#feedback-and-support\">Feedback and Support\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>Please report any issues or suggestions via the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FTotallyInformation\u002Fnode-red-contrib-moment\u002Fissues\">Github Issues list for this repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>For more information, feedback, or community support see the Node-RED Google groups forum at https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!forum\u002Fnode-red\u003C\u002Fp>\n",1784738654948]