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