A Iso.Duration represents a duration of time which can be used in date/time arithmetic.
Iso.Duration can be constructed directly or returned from durationFns.from(). It can also be obtained from the since() function of any other Iso type that supports arithmetic, and is used in those types' add() and subtract() functions.
An Iso.Duration is a string according to the ISO 8601 notation for durations. The examples in this page use this notation extensively.
Briefly, the ISO 8601 notation consists of a P character, followed by years, months, weeks, and days, followed by a T character, followed by hours, minutes, and seconds with a decimal part, each with a single-letter suffix that indicates the unit. Any zero components may be omitted. For more detailed information, see the ISO 8601 standard or the Wikipedia page.
| ISO 8601 | Meaning |
|---|---|
| P1Y1M1DT1H1M1.1S | One year, one month, one day, one hour, one minute, one second, and 100 milliseconds |
| P40D | Forty days |
| P1Y1D | A year and a day |
| P3DT4H59M | Three days, four hours and 59 minutes |
| PT2H30M | Two and a half hours |
| P1M | One month |
| PT1M | One minute |
| PT0.021S | 21 milliseconds |
| PT0S | Zero |
| P0D | Zero |
According to the ISO 8601-1 standard, weeks are not allowed to appear together with any other units, and durations can only be positive. As extensions to the standard, ISO 8601-2 allows a sign character at the start of the string, and allows combining weeks with other units. If you intend to use a string such as P3W1D, +P1M, or -P1M for interoperability, note that other programs may not accept it.
fromNumbers()
fromNumbers(
years?,months?,weeks?,days?,hours?,minutes?,seconds?,milliseconds?):Duration
Parameters
years?
number
months?
number
weeks?
number
days?
number
hours?
number
minutes?
number
seconds?
number
milliseconds?
number
Returns
isValid()
isValid(
duration):duration is Duration
Parameters
duration
unknown
Returns
duration is Duration
assertIsValid()
assertIsValid(
duration):asserts duration is Duration
Parameters
duration
unknown
Returns
asserts duration is Duration
getYears()
getYears(
duration):number
Parameters
duration
Returns
number
getMonths()
getMonths(
duration):number
Parameters
duration
Returns
number
getWeeks()
getWeeks(
duration):number
Parameters
duration
Returns
number
getDays()
getDays(
duration):number
Parameters
duration
Returns
number
getHours()
getHours(
duration):number
Parameters
duration
Returns
number
getMinutes()
getMinutes(
duration):number
Parameters
duration
Returns
number
getSeconds()
getSeconds(
duration):number
Parameters
duration
Returns
number
getMilliseconds()
getMilliseconds(
duration):number
Parameters
duration
Returns
number
getSign()
getSign(
duration):number
Parameters
duration
Returns
number
isBlank()
isBlank(
duration):boolean
Parameters
duration
Returns
boolean
with()
with(
duration,durationLike):Duration
Parameters
duration
durationLike
years?
number
months?
number
weeks?
number
days?
number
hours?
number
minutes?
number
seconds?
number
milliseconds?
number
Returns
negated()
negated(
duration):Duration
Parameters
duration
Returns
abs()
abs(
duration):Duration
Parameters
duration
Returns
add()
add(
duration,other,options?):Duration
Parameters
duration
other
Duration | { years?: number; months?: number; weeks?: number; days?: number; hours?: number; minutes?: number; seconds?: number; milliseconds?: number; }
options?
relativeTo?
ZonedDateTime | Date | DateTime
largestUnit?
LargestUnit\<DateTimeUnit>
Returns
subtract()
subtract(
duration,other,options?):Duration
Parameters
duration
other
Duration | { years?: number; months?: number; weeks?: number; days?: number; hours?: number; minutes?: number; seconds?: number; milliseconds?: number; }
options?
relativeTo?
ZonedDateTime | Date | DateTime
largestUnit?
LargestUnit\<DateTimeUnit>
Returns
round()
round(
duration,options):Duration
Parameters
duration
options
largestUnit?
LargestUnit\<DateTimeUnit>
smallestUnit?
SmallestUnit\<DateTimeUnit>
roundingIncrement?
number
roundingMode?
RoundingMode
relativeTo?
ZonedDateTime | Date | DateTime
Returns
total()
total(
duration,options):number
Parameters
duration
options
unit
SmallestUnit\<DateTimeUnit>
relativeTo?
ZonedDateTime | Date | DateTime
Returns
number
getFields()
getFields(
duration):DurationSlots
Parameters
duration
Returns
DurationSlots
from()
from(
item):Duration
Parameters
item
string | Partial\<DurationSlots>
Returns
compare()
compare(
one,two,options?):number
Parameters
one
two
options?
relativeTo
ZonedDateTime | Date | DateTime
Returns
number
chain()
chain(
duration):IDurationChain
Parameters
duration
Returns
IDurationChain