Webhook Relay provides several helpers when working with time, this section shows how to get current time, how to parse and format time
To get current time in Unix format:
local time =require("time")local now = time.unix()r:SetRequestBody(tostring(now_unix))-- Will set body to such as '1692450481.8626223'
Formatting time
Formatting time with Webhook Relay is a bit different from other languages’ approaches. Whereas other languages use a format like YYYY-MM-DD to format dates like: 2022-10-21, WHR uses a reference time.
This reference time is a point in time that the language will use to parse your layout : - 2 January 2006 03:04:05 PM in the time zone UTC -7
You might ask why this particular date. That’s because when you read it like that :
01/0203:04:05PM '06 -0700
You can note that numbers follow each other: 1 (January), 2 (day), 3 (hour), 4(minutes)…
local time =require("time")-- Get current timelocal now = time.unix()-- Declare the layoutlocal layout ="2006-01-02T15:04:05Z07:00"-- Format it in our layoutlocal now_human_readable = time.format(now, layout)r:SetRequestBody(now_human_readable)-- prints out 2023-08-19T13:21:32Z
More example layouts:
Layout = "01/02 03:04:05PM '06 -0700" // The reference time, in numerical order.
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"
// Handy time stamps.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
Parsing time
Parsing works the same way as formatting time, you will need to provide a time and the layout. Result will be returned as a Unix timestamp.