BASELINE NowYouCanUse.com
Limited Availability JavaScript

Temporal

The Temporal API allows you to work with dates, times, time zones, and durations. It is more powerful than the Date API.
Baseline Status: This feature is currently Limited (not yet Baseline). Latest engine implementation shipped on Jan 21, 2026.
Desktop Browser Engine Support
Google Chrome
144
Supported
Mozilla Firefox
139
Supported
Apple Safari
—
Unsupported
Microsoft Edge
144
Supported
Mobile Browser Engine Support
Chrome Android
144
Firefox Android
139
Safari iOS
—
Specifications and References
MDN Browser Compat Data Keys:
javascript.builtins.Date.toTemporalInstant ↗ javascript.builtins.Temporal ↗ javascript.builtins.Temporal.Duration ↗ javascript.builtins.Temporal.Duration.Duration ↗ javascript.builtins.Temporal.Duration.abs ↗ javascript.builtins.Temporal.Duration.add ↗ javascript.builtins.Temporal.Duration.blank ↗ javascript.builtins.Temporal.Duration.compare ↗ javascript.builtins.Temporal.Duration.days ↗ javascript.builtins.Temporal.Duration.from ↗ javascript.builtins.Temporal.Duration.hours ↗ javascript.builtins.Temporal.Duration.microseconds ↗ javascript.builtins.Temporal.Duration.milliseconds ↗ javascript.builtins.Temporal.Duration.minutes ↗ javascript.builtins.Temporal.Duration.months ↗ javascript.builtins.Temporal.Duration.nanoseconds ↗ javascript.builtins.Temporal.Duration.negated ↗ javascript.builtins.Temporal.Duration.round ↗ javascript.builtins.Temporal.Duration.seconds ↗ javascript.builtins.Temporal.Duration.sign ↗ javascript.builtins.Temporal.Duration.subtract ↗ javascript.builtins.Temporal.Duration.toJSON ↗ javascript.builtins.Temporal.Duration.toLocaleString ↗ javascript.builtins.Temporal.Duration.toString ↗ javascript.builtins.Temporal.Duration.total ↗ javascript.builtins.Temporal.Duration.valueOf ↗ javascript.builtins.Temporal.Duration.weeks ↗ javascript.builtins.Temporal.Duration.with ↗ javascript.builtins.Temporal.Duration.years ↗ javascript.builtins.Temporal.Instant ↗ javascript.builtins.Temporal.Instant.Instant ↗ javascript.builtins.Temporal.Instant.add ↗ javascript.builtins.Temporal.Instant.compare ↗ javascript.builtins.Temporal.Instant.epochMilliseconds ↗ javascript.builtins.Temporal.Instant.epochNanoseconds ↗ javascript.builtins.Temporal.Instant.equals ↗ javascript.builtins.Temporal.Instant.from ↗ javascript.builtins.Temporal.Instant.fromEpochMilliseconds ↗ javascript.builtins.Temporal.Instant.fromEpochNanoseconds ↗ javascript.builtins.Temporal.Instant.round ↗ javascript.builtins.Temporal.Instant.since ↗ javascript.builtins.Temporal.Instant.subtract ↗ javascript.builtins.Temporal.Instant.toJSON ↗ javascript.builtins.Temporal.Instant.toLocaleString ↗ javascript.builtins.Temporal.Instant.toString ↗ javascript.builtins.Temporal.Instant.toZonedDateTimeISO ↗ javascript.builtins.Temporal.Instant.until ↗ javascript.builtins.Temporal.Instant.valueOf ↗ javascript.builtins.Temporal.Now ↗ javascript.builtins.Temporal.Now.instant ↗ javascript.builtins.Temporal.Now.plainDateISO ↗ javascript.builtins.Temporal.Now.plainDateTimeISO ↗ javascript.builtins.Temporal.Now.plainTimeISO ↗ javascript.builtins.Temporal.Now.timeZoneId ↗ javascript.builtins.Temporal.Now.zonedDateTimeISO ↗ javascript.builtins.Temporal.PlainDate ↗ javascript.builtins.Temporal.PlainDate.PlainDate ↗ javascript.builtins.Temporal.PlainDate.add ↗ javascript.builtins.Temporal.PlainDate.calendarId ↗ javascript.builtins.Temporal.PlainDate.compare ↗ javascript.builtins.Temporal.PlainDate.day ↗ javascript.builtins.Temporal.PlainDate.dayOfWeek ↗ javascript.builtins.Temporal.PlainDate.dayOfYear ↗ javascript.builtins.Temporal.PlainDate.daysInMonth ↗ javascript.builtins.Temporal.PlainDate.daysInWeek ↗ javascript.builtins.Temporal.PlainDate.daysInYear ↗ javascript.builtins.Temporal.PlainDate.equals ↗ javascript.builtins.Temporal.PlainDate.era ↗ javascript.builtins.Temporal.PlainDate.eraYear ↗ javascript.builtins.Temporal.PlainDate.from ↗ javascript.builtins.Temporal.PlainDate.inLeapYear ↗ javascript.builtins.Temporal.PlainDate.month ↗ javascript.builtins.Temporal.PlainDate.monthCode ↗ javascript.builtins.Temporal.PlainDate.monthsInYear ↗ javascript.builtins.Temporal.PlainDate.since ↗ javascript.builtins.Temporal.PlainDate.subtract ↗ javascript.builtins.Temporal.PlainDate.toJSON ↗ javascript.builtins.Temporal.PlainDate.toLocaleString ↗ javascript.builtins.Temporal.PlainDate.toPlainDateTime ↗ javascript.builtins.Temporal.PlainDate.toPlainMonthDay ↗ javascript.builtins.Temporal.PlainDate.toPlainYearMonth ↗ javascript.builtins.Temporal.PlainDate.toString ↗ javascript.builtins.Temporal.PlainDate.toZonedDateTime ↗ javascript.builtins.Temporal.PlainDate.until ↗ javascript.builtins.Temporal.PlainDate.valueOf ↗ javascript.builtins.Temporal.PlainDate.weekOfYear ↗ javascript.builtins.Temporal.PlainDate.with ↗ javascript.builtins.Temporal.PlainDate.withCalendar ↗ javascript.builtins.Temporal.PlainDate.year ↗ javascript.builtins.Temporal.PlainDate.yearOfWeek ↗ javascript.builtins.Temporal.PlainDateTime ↗ javascript.builtins.Temporal.PlainDateTime.PlainDateTime ↗ javascript.builtins.Temporal.PlainDateTime.add ↗ javascript.builtins.Temporal.PlainDateTime.calendarId ↗ javascript.builtins.Temporal.PlainDateTime.compare ↗ javascript.builtins.Temporal.PlainDateTime.day ↗ javascript.builtins.Temporal.PlainDateTime.dayOfWeek ↗ javascript.builtins.Temporal.PlainDateTime.dayOfYear ↗ javascript.builtins.Temporal.PlainDateTime.daysInMonth ↗ javascript.builtins.Temporal.PlainDateTime.daysInWeek ↗ javascript.builtins.Temporal.PlainDateTime.daysInYear ↗ javascript.builtins.Temporal.PlainDateTime.equals ↗ javascript.builtins.Temporal.PlainDateTime.era ↗ javascript.builtins.Temporal.PlainDateTime.eraYear ↗ javascript.builtins.Temporal.PlainDateTime.from ↗ javascript.builtins.Temporal.PlainDateTime.hour ↗ javascript.builtins.Temporal.PlainDateTime.inLeapYear ↗ javascript.builtins.Temporal.PlainDateTime.microsecond ↗ javascript.builtins.Temporal.PlainDateTime.millisecond ↗ javascript.builtins.Temporal.PlainDateTime.minute ↗ javascript.builtins.Temporal.PlainDateTime.month ↗ javascript.builtins.Temporal.PlainDateTime.monthCode ↗ javascript.builtins.Temporal.PlainDateTime.monthsInYear ↗ javascript.builtins.Temporal.PlainDateTime.nanosecond ↗ javascript.builtins.Temporal.PlainDateTime.round ↗ javascript.builtins.Temporal.PlainDateTime.second ↗ javascript.builtins.Temporal.PlainDateTime.since ↗ javascript.builtins.Temporal.PlainDateTime.subtract ↗ javascript.builtins.Temporal.PlainDateTime.toJSON ↗ javascript.builtins.Temporal.PlainDateTime.toLocaleString ↗ javascript.builtins.Temporal.PlainDateTime.toPlainDate ↗ javascript.builtins.Temporal.PlainDateTime.toPlainTime ↗ javascript.builtins.Temporal.PlainDateTime.toString ↗ javascript.builtins.Temporal.PlainDateTime.toZonedDateTime ↗ javascript.builtins.Temporal.PlainDateTime.until ↗ javascript.builtins.Temporal.PlainDateTime.valueOf ↗ javascript.builtins.Temporal.PlainDateTime.weekOfYear ↗ javascript.builtins.Temporal.PlainDateTime.with ↗ javascript.builtins.Temporal.PlainDateTime.withCalendar ↗ javascript.builtins.Temporal.PlainDateTime.withPlainTime ↗ javascript.builtins.Temporal.PlainDateTime.year ↗ javascript.builtins.Temporal.PlainDateTime.yearOfWeek ↗ javascript.builtins.Temporal.PlainMonthDay ↗ javascript.builtins.Temporal.PlainMonthDay.PlainMonthDay ↗ javascript.builtins.Temporal.PlainMonthDay.calendarId ↗ javascript.builtins.Temporal.PlainMonthDay.day ↗ javascript.builtins.Temporal.PlainMonthDay.equals ↗ javascript.builtins.Temporal.PlainMonthDay.from ↗ javascript.builtins.Temporal.PlainMonthDay.monthCode ↗ javascript.builtins.Temporal.PlainMonthDay.toJSON ↗ javascript.builtins.Temporal.PlainMonthDay.toLocaleString ↗ javascript.builtins.Temporal.PlainMonthDay.toPlainDate ↗ javascript.builtins.Temporal.PlainMonthDay.toString ↗ javascript.builtins.Temporal.PlainMonthDay.valueOf ↗ javascript.builtins.Temporal.PlainMonthDay.with ↗ javascript.builtins.Temporal.PlainTime ↗ javascript.builtins.Temporal.PlainTime.PlainTime ↗ javascript.builtins.Temporal.PlainTime.add ↗ javascript.builtins.Temporal.PlainTime.compare ↗ javascript.builtins.Temporal.PlainTime.equals ↗ javascript.builtins.Temporal.PlainTime.from ↗ javascript.builtins.Temporal.PlainTime.hour ↗ javascript.builtins.Temporal.PlainTime.microsecond ↗ javascript.builtins.Temporal.PlainTime.millisecond ↗ javascript.builtins.Temporal.PlainTime.minute ↗ javascript.builtins.Temporal.PlainTime.nanosecond ↗ javascript.builtins.Temporal.PlainTime.round ↗ javascript.builtins.Temporal.PlainTime.second ↗ javascript.builtins.Temporal.PlainTime.since ↗ javascript.builtins.Temporal.PlainTime.subtract ↗ javascript.builtins.Temporal.PlainTime.toJSON ↗ javascript.builtins.Temporal.PlainTime.toLocaleString ↗ javascript.builtins.Temporal.PlainTime.toString ↗ javascript.builtins.Temporal.PlainTime.until ↗ javascript.builtins.Temporal.PlainTime.valueOf ↗ javascript.builtins.Temporal.PlainTime.with ↗ javascript.builtins.Temporal.PlainYearMonth ↗ javascript.builtins.Temporal.PlainYearMonth.PlainYearMonth ↗ javascript.builtins.Temporal.PlainYearMonth.add ↗ javascript.builtins.Temporal.PlainYearMonth.calendarId ↗ javascript.builtins.Temporal.PlainYearMonth.compare ↗ javascript.builtins.Temporal.PlainYearMonth.daysInMonth ↗ javascript.builtins.Temporal.PlainYearMonth.daysInYear ↗ javascript.builtins.Temporal.PlainYearMonth.equals ↗ javascript.builtins.Temporal.PlainYearMonth.era ↗ javascript.builtins.Temporal.PlainYearMonth.eraYear ↗ javascript.builtins.Temporal.PlainYearMonth.from ↗ javascript.builtins.Temporal.PlainYearMonth.inLeapYear ↗ javascript.builtins.Temporal.PlainYearMonth.month ↗ javascript.builtins.Temporal.PlainYearMonth.monthCode ↗ javascript.builtins.Temporal.PlainYearMonth.monthsInYear ↗ javascript.builtins.Temporal.PlainYearMonth.since ↗ javascript.builtins.Temporal.PlainYearMonth.subtract ↗ javascript.builtins.Temporal.PlainYearMonth.toJSON ↗ javascript.builtins.Temporal.PlainYearMonth.toLocaleString ↗ javascript.builtins.Temporal.PlainYearMonth.toPlainDate ↗ javascript.builtins.Temporal.PlainYearMonth.toString ↗ javascript.builtins.Temporal.PlainYearMonth.until ↗ javascript.builtins.Temporal.PlainYearMonth.valueOf ↗ javascript.builtins.Temporal.PlainYearMonth.with ↗ javascript.builtins.Temporal.PlainYearMonth.year ↗ javascript.builtins.Temporal.ZonedDateTime ↗ javascript.builtins.Temporal.ZonedDateTime.ZonedDateTime ↗ javascript.builtins.Temporal.ZonedDateTime.add ↗ javascript.builtins.Temporal.ZonedDateTime.calendarId ↗ javascript.builtins.Temporal.ZonedDateTime.compare ↗ javascript.builtins.Temporal.ZonedDateTime.day ↗ javascript.builtins.Temporal.ZonedDateTime.dayOfWeek ↗ javascript.builtins.Temporal.ZonedDateTime.dayOfYear ↗ javascript.builtins.Temporal.ZonedDateTime.daysInMonth ↗ javascript.builtins.Temporal.ZonedDateTime.daysInWeek ↗ javascript.builtins.Temporal.ZonedDateTime.daysInYear ↗ javascript.builtins.Temporal.ZonedDateTime.epochMilliseconds ↗ javascript.builtins.Temporal.ZonedDateTime.epochNanoseconds ↗ javascript.builtins.Temporal.ZonedDateTime.equals ↗ javascript.builtins.Temporal.ZonedDateTime.era ↗ javascript.builtins.Temporal.ZonedDateTime.eraYear ↗ javascript.builtins.Temporal.ZonedDateTime.from ↗ javascript.builtins.Temporal.ZonedDateTime.getTimeZoneTransition ↗ javascript.builtins.Temporal.ZonedDateTime.hour ↗ javascript.builtins.Temporal.ZonedDateTime.hoursInDay ↗ javascript.builtins.Temporal.ZonedDateTime.inLeapYear ↗ javascript.builtins.Temporal.ZonedDateTime.microsecond ↗ javascript.builtins.Temporal.ZonedDateTime.millisecond ↗ javascript.builtins.Temporal.ZonedDateTime.minute ↗ javascript.builtins.Temporal.ZonedDateTime.month ↗ javascript.builtins.Temporal.ZonedDateTime.monthCode ↗ javascript.builtins.Temporal.ZonedDateTime.monthsInYear ↗ javascript.builtins.Temporal.ZonedDateTime.nanosecond ↗ javascript.builtins.Temporal.ZonedDateTime.offset ↗ javascript.builtins.Temporal.ZonedDateTime.offsetNanoseconds ↗ javascript.builtins.Temporal.ZonedDateTime.round ↗ javascript.builtins.Temporal.ZonedDateTime.second ↗ javascript.builtins.Temporal.ZonedDateTime.since ↗ javascript.builtins.Temporal.ZonedDateTime.startOfDay ↗ javascript.builtins.Temporal.ZonedDateTime.subtract ↗ javascript.builtins.Temporal.ZonedDateTime.timeZoneId ↗ javascript.builtins.Temporal.ZonedDateTime.toInstant ↗ javascript.builtins.Temporal.ZonedDateTime.toJSON ↗ javascript.builtins.Temporal.ZonedDateTime.toLocaleString ↗ javascript.builtins.Temporal.ZonedDateTime.toPlainDate ↗ javascript.builtins.Temporal.ZonedDateTime.toPlainDateTime ↗ javascript.builtins.Temporal.ZonedDateTime.toPlainTime ↗ javascript.builtins.Temporal.ZonedDateTime.toString ↗ javascript.builtins.Temporal.ZonedDateTime.until ↗ javascript.builtins.Temporal.ZonedDateTime.valueOf ↗ javascript.builtins.Temporal.ZonedDateTime.weekOfYear ↗ javascript.builtins.Temporal.ZonedDateTime.with ↗ javascript.builtins.Temporal.ZonedDateTime.withCalendar ↗ javascript.builtins.Temporal.ZonedDateTime.withPlainTime ↗ javascript.builtins.Temporal.ZonedDateTime.withTimeZone ↗ javascript.builtins.Temporal.ZonedDateTime.year ↗ javascript.builtins.Temporal.ZonedDateTime.yearOfWeek ↗
id: temporal