Duration

luxon

from milliseconds

const dur = Duration.fromMillis(1_000_000)

dur.toHuman() // '1000000 milliseconds'
dur.rescale().toHuman() // '16 minutes, 40 seconds'

from calendar components

const dur = Duration.fromObject({ hour: 36 })

dur.toHuman() // '36 hours'
dur.rescale().toHuman() // '1 day, 12 hours'
dur.shiftTo("minutes").toHuman() // '2160 minutes'

from difference

const dur = zdt2.diff(zdt1, ["years", "months", "days"])
dur.toHuman() // "3 years, 2 months, 14 days"
earlymorning logo

© Antoine Weber 2026 - All rights reserved

Duration

luxon

from milliseconds

const dur = Duration.fromMillis(1_000_000)

dur.toHuman() // '1000000 milliseconds'
dur.rescale().toHuman() // '16 minutes, 40 seconds'

from calendar components

const dur = Duration.fromObject({ hour: 36 })

dur.toHuman() // '36 hours'
dur.rescale().toHuman() // '1 day, 12 hours'
dur.shiftTo("minutes").toHuman() // '2160 minutes'

from difference

const dur = zdt2.diff(zdt1, ["years", "months", "days"])
dur.toHuman() // "3 years, 2 months, 14 days"