mirror of
https://github.com/mailscope/kumomta.git
synced 2026-08-19 19:08:17 +00:00
41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
# TimeDelta Object Type
|
|
|
|
{{since('2025.12.02-67ee9e96')}}
|
|
|
|
The `TimeDelta` object type represents a time interval.
|
|
|
|
You do not create a `TimeDelta` object directly, but instead using one of the
|
|
constructing functions:
|
|
|
|
* [kumo.time.parse_duration](parse_duration.md)
|
|
|
|
or though metamethods of `TimeDelta` (see below) or [Time](Time.md#metamethods).
|
|
|
|
## Metamethods
|
|
|
|
The following metamethod are implemented on `TimeDelta` objects:
|
|
|
|
* `tostring(time_delta)` - returns a human readable duration string, the same as the `human` field described below
|
|
* `delta1 == delta2` - compares two `TimeDelta` objects for equality
|
|
* `delta1 + delta2` - you may add a `TimeDelta` to a `TimeDelta` to produce a new `TimeDelta`
|
|
* `delta1 - delta2` - you may subtract a `TimeDelta` from a `TimeDelta` to produce a new `TimeDelta`
|
|
|
|
## Fields
|
|
|
|
The following fields epose information about the underlying `TimeDelta`.
|
|
Fields are accessed using dot notation, like `delta.seconds`.
|
|
|
|
* `seconds` - returns the TimeDelta expressed as a signed number of seconds (including fractional seconds)
|
|
* `nanoseconds` - returns the TimeDelta expressed as a signed integer number of nanoseconds.
|
|
* `milliseconds` - returns the TimeDelta expressed as a signed integer number of milliseconds.
|
|
* `microseconds` - returns the TimeDelta expressed as a signed integer number of microseconds.
|
|
* `human` - returns the TimeDelta expressed as a human readable string, such
|
|
as `5m` for a five minute duration.
|
|
|
|
```lua
|
|
local delta1 = kumo.time.parse_duration(20)
|
|
local delta2 = kumo.time.parse_duration '10 seconds'
|
|
|
|
assert((delta2 - delta1).seconds == 10)
|
|
```
|