diff options
author | Jo-Philipp Wich <jo@mein.io> | 2022-03-22 13:33:56 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2022-03-22 16:01:10 +0100 |
commit | 171402fd6fc2bd27dd45e2dbf258734c53987508 (patch) | |
tree | f839579b4654395437d18bf143d6461008bf705e /tests/custom/03_stdlib/54_timegm | |
parent | 3eaca1db52be980f62aed281fedf319eff599fbd (diff) |
lib: add date and time related functions
Add five new functions to deal with date calculation and timing:
- localtime(), gmtime() - return a broken down calendar date and time
specification from the given epoch (or now, if absent) in local and
UTC time respectively
- timelocal(), timegm() - the inverse operation for the former functions,
taking a date and time specification (interpreted as local or UTC time
respectively) and turning it into an epoch value
- clock() - return the second and nanosecond values of the system clock,
useful for time/performance measurements
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'tests/custom/03_stdlib/54_timegm')
-rw-r--r-- | tests/custom/03_stdlib/54_timegm | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/custom/03_stdlib/54_timegm b/tests/custom/03_stdlib/54_timegm new file mode 100644 index 0000000..9c0b59a --- /dev/null +++ b/tests/custom/03_stdlib/54_timegm @@ -0,0 +1,54 @@ +The `timegm()` function performs the inverse operation of `gmtime()` +by taking a broken-down date and time dictionary and transforming it into +an epoch value, assuming UTC time. + +-- Testcase -- +{% + // check expected epoch + let d1 = { + "sec": 42, + "min": 51, + "hour": 13, + "mday": 22, + "mon": 3, + "year": 2022, + "wday": 2, + "yday": 81, + "isdst": 0 + }; + + // check that out of range values are normalized + let d2 = { + "sec": 33, + "min": 22, + "hour": 11, + "mday": 40, + "mon": 10, + "year": 2022, + "wday": 2, + "yday": 81, + "isdst": 0 + }; + + // check that everything except mday, mon, year is optional + let d3 = { + "mday": 1, + "mon": 1, + "year": 2000 + }; + + printf("%.J\n", [ + timegm(d1), + timegm(d2), + timegm(d3) + ]); +%} +-- End -- + +-- Expect stdout -- +[ + 1647957102, + 1667992953, + 946684800 +] +-- End -- |