Skip to main content

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 8601Meaning
P1Y1M1DT1H1M1.1SOne year, one month, one day, one hour, one minute, one second, and 100 milliseconds
P40DForty days
P1Y1DA year and a day
P3DT4H59MThree days, four hours and 59 minutes
PT2H30MTwo and a half hours
P1MOne month
PT1MOne minute
PT0.021S21 milliseconds
PT0SZero
P0DZero
note

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​

Duration


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​

Duration

Returns​

number


getMonths()​

getMonths(duration): number

Parameters​

duration​

Duration

Returns​

number


getWeeks()​

getWeeks(duration): number

Parameters​

duration​

Duration

Returns​

number


getDays()​

getDays(duration): number

Parameters​

duration​

Duration

Returns​

number


getHours()​

getHours(duration): number

Parameters​

duration​

Duration

Returns​

number


getMinutes()​

getMinutes(duration): number

Parameters​

duration​

Duration

Returns​

number


getSeconds()​

getSeconds(duration): number

Parameters​

duration​

Duration

Returns​

number


getMilliseconds()​

getMilliseconds(duration): number

Parameters​

duration​

Duration

Returns​

number


getSign()​

getSign(duration): number

Parameters​

duration​

Duration

Returns​

number


isBlank()​

isBlank(duration): boolean

Parameters​

duration​

Duration

Returns​

boolean


with()​

with(duration, durationLike): Duration

Parameters​

duration​

Duration

durationLike​

years?​

number

months?​

number

weeks?​

number

days?​

number

hours?​

number

minutes?​

number

seconds?​

number

milliseconds?​

number

Returns​

Duration


negated()​

negated(duration): Duration

Parameters​

duration​

Duration

Returns​

Duration


abs()​

abs(duration): Duration

Parameters​

duration​

Duration

Returns​

Duration


add()​

add(duration, other, options?): Duration

Parameters​

duration​

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​

Duration


subtract()​

subtract(duration, other, options?): Duration

Parameters​

duration​

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​

Duration


round()​

round(duration, options): Duration

Parameters​

duration​

Duration

options​

largestUnit?​

LargestUnit\<DateTimeUnit>

smallestUnit?​

SmallestUnit\<DateTimeUnit>

roundingIncrement?​

number

roundingMode?​

RoundingMode

relativeTo?​

ZonedDateTime | Date | DateTime

Returns​

Duration


total()​

total(duration, options): number

Parameters​

duration​

Duration

options​

unit​

SmallestUnit\<DateTimeUnit>

relativeTo?​

ZonedDateTime | Date | DateTime

Returns​

number


getFields()​

getFields(duration): DurationSlots

Parameters​

duration​

Duration

Returns​

DurationSlots


from()​

from(item): Duration

Parameters​

item​

string | Partial\<DurationSlots>

Returns​

Duration


compare()​

compare(one, two, options?): number

Parameters​

one​

Duration

two​

Duration

options?​

relativeTo​

ZonedDateTime | Date | DateTime

Returns​

number


chain()​

chain(duration): IDurationChain

Parameters​

duration​

Duration

Returns​

IDurationChain