Skip to main content

Date/time functions

duration

Commentary

added in 1.7.0

Constructs a quatity of time, expressed in hours, days, minutes, seconds, and milliseconds. 1 The output of this function is a UNIX millisecond value intended to be used with other date/time functions. 2

Use this function when you want to name a span of time, like 14 days, instead of hardcoding its opaque millisecond value equivelent (1209600000).

Note that this function doesn't perform calendar method. For example, subtracting 900 days from now won't take into account things like leap years. It's intended purpose is to specify instances of wallclock time.


Examples

Passing in parameters

Supply any time units, with days being the largest and milliseconds being the smallest. Any unsupplied units default to 0.

{
"_gen": "duration",
"days": 4,
"hours": 3,
"minutes": 32,
"seconds": 45,
"milliseconds": 250
}
[
{
"topic": "sandbox",
"key": null,
"value": 358365000,
"headers": null
}
]

Performing time math

duration works with other functions that expect Unix millisecond values, like formatDateTime.

{
"_gen": "formatDateTime",
"ms": {
"_gen": "math",
"expr": "now - offset",
"names": {
"now": {
"_gen": "now"
},
"offset": {
"_gen": "duration",
"days": 7
}
}
}
}
[
{
"topic": "sandbox",
"key": null,
"value": "2024-04-18T13:28:47.262-07:00",
"headers": null
}
]

Specification

JSON schema

{
"type": "object",
"properties": {
"days": {
"oneOf": [
{
"type": "number"
},
{
"type": "object",
"properties": {
"_gen": {
"type": "string"
}
},
"required": [
"_gen"
]
}
]
},
"hours": {
"oneOf": [
{
"type": "number"
},
{
"type": "object",
"properties": {
"_gen": {
"type": "string"
}
},
"required": [
"_gen"
]
}
]
},
"minutes": {
"oneOf": [
{
"type": "number"
},
{
"type": "object",
"properties": {
"_gen": {
"type": "string"
}
},
"required": [
"_gen"
]
}
]
},
"seconds": {
"oneOf": [
{
"type": "number"
},
{
"type": "object",
"properties": {
"_gen": {
"type": "string"
}
},
"required": [
"_gen"
]
}
]
},
"ms": {
"oneOf": [
{
"type": "number"
},
{
"type": "object",
"properties": {
"_gen": {
"type": "string"
}
},
"required": [
"_gen"
]
}
]
}
}
}