<?xml version="1.0" encoding="UTF-8"?>
<feature id="temporal"><name>Temporal</name><description>The Temporal API allows you to work with dates, times, time zones, and durations. It is more powerful than the Date API.</description><group>javascript</group><group_name>JavaScript</group_name><baseline><status>limited</status></baseline><support><browser name="chrome" version="144" supported="true"></browser><browser name="firefox" version="139" supported="true"></browser><browser name="safari" version="—" supported="false"></browser><browser name="edge" version="144" supported="true"></browser><browser name="chrome_android" version="144" supported="true"></browser><browser name="firefox_android" version="139" supported="true"></browser><browser name="safari_ios" version="—" supported="false"></browser></support><specifications><spec>https://tc39.es/proposal-temporal/</spec></specifications><caniuse><id>temporal</id></caniuse><mdn_url>https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Temporal</mdn_url><compat_features><key>javascript.builtins.Date.toTemporalInstant</key><key>javascript.builtins.Temporal</key><key>javascript.builtins.Temporal.Duration</key><key>javascript.builtins.Temporal.Duration.Duration</key><key>javascript.builtins.Temporal.Duration.abs</key><key>javascript.builtins.Temporal.Duration.add</key><key>javascript.builtins.Temporal.Duration.blank</key><key>javascript.builtins.Temporal.Duration.compare</key><key>javascript.builtins.Temporal.Duration.days</key><key>javascript.builtins.Temporal.Duration.from</key><key>javascript.builtins.Temporal.Duration.hours</key><key>javascript.builtins.Temporal.Duration.microseconds</key><key>javascript.builtins.Temporal.Duration.milliseconds</key><key>javascript.builtins.Temporal.Duration.minutes</key><key>javascript.builtins.Temporal.Duration.months</key><key>javascript.builtins.Temporal.Duration.nanoseconds</key><key>javascript.builtins.Temporal.Duration.negated</key><key>javascript.builtins.Temporal.Duration.round</key><key>javascript.builtins.Temporal.Duration.seconds</key><key>javascript.builtins.Temporal.Duration.sign</key><key>javascript.builtins.Temporal.Duration.subtract</key><key>javascript.builtins.Temporal.Duration.toJSON</key><key>javascript.builtins.Temporal.Duration.toLocaleString</key><key>javascript.builtins.Temporal.Duration.toString</key><key>javascript.builtins.Temporal.Duration.total</key><key>javascript.builtins.Temporal.Duration.valueOf</key><key>javascript.builtins.Temporal.Duration.weeks</key><key>javascript.builtins.Temporal.Duration.with</key><key>javascript.builtins.Temporal.Duration.years</key><key>javascript.builtins.Temporal.Instant</key><key>javascript.builtins.Temporal.Instant.Instant</key><key>javascript.builtins.Temporal.Instant.add</key><key>javascript.builtins.Temporal.Instant.compare</key><key>javascript.builtins.Temporal.Instant.epochMilliseconds</key><key>javascript.builtins.Temporal.Instant.epochNanoseconds</key><key>javascript.builtins.Temporal.Instant.equals</key><key>javascript.builtins.Temporal.Instant.from</key><key>javascript.builtins.Temporal.Instant.fromEpochMilliseconds</key><key>javascript.builtins.Temporal.Instant.fromEpochNanoseconds</key><key>javascript.builtins.Temporal.Instant.round</key><key>javascript.builtins.Temporal.Instant.since</key><key>javascript.builtins.Temporal.Instant.subtract</key><key>javascript.builtins.Temporal.Instant.toJSON</key><key>javascript.builtins.Temporal.Instant.toLocaleString</key><key>javascript.builtins.Temporal.Instant.toString</key><key>javascript.builtins.Temporal.Instant.toZonedDateTimeISO</key><key>javascript.builtins.Temporal.Instant.until</key><key>javascript.builtins.Temporal.Instant.valueOf</key><key>javascript.builtins.Temporal.Now</key><key>javascript.builtins.Temporal.Now.instant</key><key>javascript.builtins.Temporal.Now.plainDateISO</key><key>javascript.builtins.Temporal.Now.plainDateTimeISO</key><key>javascript.builtins.Temporal.Now.plainTimeISO</key><key>javascript.builtins.Temporal.Now.timeZoneId</key><key>javascript.builtins.Temporal.Now.zonedDateTimeISO</key><key>javascript.builtins.Temporal.PlainDate</key><key>javascript.builtins.Temporal.PlainDate.PlainDate</key><key>javascript.builtins.Temporal.PlainDate.add</key><key>javascript.builtins.Temporal.PlainDate.calendarId</key><key>javascript.builtins.Temporal.PlainDate.compare</key><key>javascript.builtins.Temporal.PlainDate.day</key><key>javascript.builtins.Temporal.PlainDate.dayOfWeek</key><key>javascript.builtins.Temporal.PlainDate.dayOfYear</key><key>javascript.builtins.Temporal.PlainDate.daysInMonth</key><key>javascript.builtins.Temporal.PlainDate.daysInWeek</key><key>javascript.builtins.Temporal.PlainDate.daysInYear</key><key>javascript.builtins.Temporal.PlainDate.equals</key><key>javascript.builtins.Temporal.PlainDate.era</key><key>javascript.builtins.Temporal.PlainDate.eraYear</key><key>javascript.builtins.Temporal.PlainDate.from</key><key>javascript.builtins.Temporal.PlainDate.inLeapYear</key><key>javascript.builtins.Temporal.PlainDate.month</key><key>javascript.builtins.Temporal.PlainDate.monthCode</key><key>javascript.builtins.Temporal.PlainDate.monthsInYear</key><key>javascript.builtins.Temporal.PlainDate.since</key><key>javascript.builtins.Temporal.PlainDate.subtract</key><key>javascript.builtins.Temporal.PlainDate.toJSON</key><key>javascript.builtins.Temporal.PlainDate.toLocaleString</key><key>javascript.builtins.Temporal.PlainDate.toPlainDateTime</key><key>javascript.builtins.Temporal.PlainDate.toPlainMonthDay</key><key>javascript.builtins.Temporal.PlainDate.toPlainYearMonth</key><key>javascript.builtins.Temporal.PlainDate.toString</key><key>javascript.builtins.Temporal.PlainDate.toZonedDateTime</key><key>javascript.builtins.Temporal.PlainDate.until</key><key>javascript.builtins.Temporal.PlainDate.valueOf</key><key>javascript.builtins.Temporal.PlainDate.weekOfYear</key><key>javascript.builtins.Temporal.PlainDate.with</key><key>javascript.builtins.Temporal.PlainDate.withCalendar</key><key>javascript.builtins.Temporal.PlainDate.year</key><key>javascript.builtins.Temporal.PlainDate.yearOfWeek</key><key>javascript.builtins.Temporal.PlainDateTime</key><key>javascript.builtins.Temporal.PlainDateTime.PlainDateTime</key><key>javascript.builtins.Temporal.PlainDateTime.add</key><key>javascript.builtins.Temporal.PlainDateTime.calendarId</key><key>javascript.builtins.Temporal.PlainDateTime.compare</key><key>javascript.builtins.Temporal.PlainDateTime.day</key><key>javascript.builtins.Temporal.PlainDateTime.dayOfWeek</key><key>javascript.builtins.Temporal.PlainDateTime.dayOfYear</key><key>javascript.builtins.Temporal.PlainDateTime.daysInMonth</key><key>javascript.builtins.Temporal.PlainDateTime.daysInWeek</key><key>javascript.builtins.Temporal.PlainDateTime.daysInYear</key><key>javascript.builtins.Temporal.PlainDateTime.equals</key><key>javascript.builtins.Temporal.PlainDateTime.era</key><key>javascript.builtins.Temporal.PlainDateTime.eraYear</key><key>javascript.builtins.Temporal.PlainDateTime.from</key><key>javascript.builtins.Temporal.PlainDateTime.hour</key><key>javascript.builtins.Temporal.PlainDateTime.inLeapYear</key><key>javascript.builtins.Temporal.PlainDateTime.microsecond</key><key>javascript.builtins.Temporal.PlainDateTime.millisecond</key><key>javascript.builtins.Temporal.PlainDateTime.minute</key><key>javascript.builtins.Temporal.PlainDateTime.month</key><key>javascript.builtins.Temporal.PlainDateTime.monthCode</key><key>javascript.builtins.Temporal.PlainDateTime.monthsInYear</key><key>javascript.builtins.Temporal.PlainDateTime.nanosecond</key><key>javascript.builtins.Temporal.PlainDateTime.round</key><key>javascript.builtins.Temporal.PlainDateTime.second</key><key>javascript.builtins.Temporal.PlainDateTime.since</key><key>javascript.builtins.Temporal.PlainDateTime.subtract</key><key>javascript.builtins.Temporal.PlainDateTime.toJSON</key><key>javascript.builtins.Temporal.PlainDateTime.toLocaleString</key><key>javascript.builtins.Temporal.PlainDateTime.toPlainDate</key><key>javascript.builtins.Temporal.PlainDateTime.toPlainTime</key><key>javascript.builtins.Temporal.PlainDateTime.toString</key><key>javascript.builtins.Temporal.PlainDateTime.toZonedDateTime</key><key>javascript.builtins.Temporal.PlainDateTime.until</key><key>javascript.builtins.Temporal.PlainDateTime.valueOf</key><key>javascript.builtins.Temporal.PlainDateTime.weekOfYear</key><key>javascript.builtins.Temporal.PlainDateTime.with</key><key>javascript.builtins.Temporal.PlainDateTime.withCalendar</key><key>javascript.builtins.Temporal.PlainDateTime.withPlainTime</key><key>javascript.builtins.Temporal.PlainDateTime.year</key><key>javascript.builtins.Temporal.PlainDateTime.yearOfWeek</key><key>javascript.builtins.Temporal.PlainMonthDay</key><key>javascript.builtins.Temporal.PlainMonthDay.PlainMonthDay</key><key>javascript.builtins.Temporal.PlainMonthDay.calendarId</key><key>javascript.builtins.Temporal.PlainMonthDay.day</key><key>javascript.builtins.Temporal.PlainMonthDay.equals</key><key>javascript.builtins.Temporal.PlainMonthDay.from</key><key>javascript.builtins.Temporal.PlainMonthDay.monthCode</key><key>javascript.builtins.Temporal.PlainMonthDay.toJSON</key><key>javascript.builtins.Temporal.PlainMonthDay.toLocaleString</key><key>javascript.builtins.Temporal.PlainMonthDay.toPlainDate</key><key>javascript.builtins.Temporal.PlainMonthDay.toString</key><key>javascript.builtins.Temporal.PlainMonthDay.valueOf</key><key>javascript.builtins.Temporal.PlainMonthDay.with</key><key>javascript.builtins.Temporal.PlainTime</key><key>javascript.builtins.Temporal.PlainTime.PlainTime</key><key>javascript.builtins.Temporal.PlainTime.add</key><key>javascript.builtins.Temporal.PlainTime.compare</key><key>javascript.builtins.Temporal.PlainTime.equals</key><key>javascript.builtins.Temporal.PlainTime.from</key><key>javascript.builtins.Temporal.PlainTime.hour</key><key>javascript.builtins.Temporal.PlainTime.microsecond</key><key>javascript.builtins.Temporal.PlainTime.millisecond</key><key>javascript.builtins.Temporal.PlainTime.minute</key><key>javascript.builtins.Temporal.PlainTime.nanosecond</key><key>javascript.builtins.Temporal.PlainTime.round</key><key>javascript.builtins.Temporal.PlainTime.second</key><key>javascript.builtins.Temporal.PlainTime.since</key><key>javascript.builtins.Temporal.PlainTime.subtract</key><key>javascript.builtins.Temporal.PlainTime.toJSON</key><key>javascript.builtins.Temporal.PlainTime.toLocaleString</key><key>javascript.builtins.Temporal.PlainTime.toString</key><key>javascript.builtins.Temporal.PlainTime.until</key><key>javascript.builtins.Temporal.PlainTime.valueOf</key><key>javascript.builtins.Temporal.PlainTime.with</key><key>javascript.builtins.Temporal.PlainYearMonth</key><key>javascript.builtins.Temporal.PlainYearMonth.PlainYearMonth</key><key>javascript.builtins.Temporal.PlainYearMonth.add</key><key>javascript.builtins.Temporal.PlainYearMonth.calendarId</key><key>javascript.builtins.Temporal.PlainYearMonth.compare</key><key>javascript.builtins.Temporal.PlainYearMonth.daysInMonth</key><key>javascript.builtins.Temporal.PlainYearMonth.daysInYear</key><key>javascript.builtins.Temporal.PlainYearMonth.equals</key><key>javascript.builtins.Temporal.PlainYearMonth.era</key><key>javascript.builtins.Temporal.PlainYearMonth.eraYear</key><key>javascript.builtins.Temporal.PlainYearMonth.from</key><key>javascript.builtins.Temporal.PlainYearMonth.inLeapYear</key><key>javascript.builtins.Temporal.PlainYearMonth.month</key><key>javascript.builtins.Temporal.PlainYearMonth.monthCode</key><key>javascript.builtins.Temporal.PlainYearMonth.monthsInYear</key><key>javascript.builtins.Temporal.PlainYearMonth.since</key><key>javascript.builtins.Temporal.PlainYearMonth.subtract</key><key>javascript.builtins.Temporal.PlainYearMonth.toJSON</key><key>javascript.builtins.Temporal.PlainYearMonth.toLocaleString</key><key>javascript.builtins.Temporal.PlainYearMonth.toPlainDate</key><key>javascript.builtins.Temporal.PlainYearMonth.toString</key><key>javascript.builtins.Temporal.PlainYearMonth.until</key><key>javascript.builtins.Temporal.PlainYearMonth.valueOf</key><key>javascript.builtins.Temporal.PlainYearMonth.with</key><key>javascript.builtins.Temporal.PlainYearMonth.year</key><key>javascript.builtins.Temporal.ZonedDateTime</key><key>javascript.builtins.Temporal.ZonedDateTime.ZonedDateTime</key><key>javascript.builtins.Temporal.ZonedDateTime.add</key><key>javascript.builtins.Temporal.ZonedDateTime.calendarId</key><key>javascript.builtins.Temporal.ZonedDateTime.compare</key><key>javascript.builtins.Temporal.ZonedDateTime.day</key><key>javascript.builtins.Temporal.ZonedDateTime.dayOfWeek</key><key>javascript.builtins.Temporal.ZonedDateTime.dayOfYear</key><key>javascript.builtins.Temporal.ZonedDateTime.daysInMonth</key><key>javascript.builtins.Temporal.ZonedDateTime.daysInWeek</key><key>javascript.builtins.Temporal.ZonedDateTime.daysInYear</key><key>javascript.builtins.Temporal.ZonedDateTime.epochMilliseconds</key><key>javascript.builtins.Temporal.ZonedDateTime.epochNanoseconds</key><key>javascript.builtins.Temporal.ZonedDateTime.equals</key><key>javascript.builtins.Temporal.ZonedDateTime.era</key><key>javascript.builtins.Temporal.ZonedDateTime.eraYear</key><key>javascript.builtins.Temporal.ZonedDateTime.from</key><key>javascript.builtins.Temporal.ZonedDateTime.getTimeZoneTransition</key><key>javascript.builtins.Temporal.ZonedDateTime.hour</key><key>javascript.builtins.Temporal.ZonedDateTime.hoursInDay</key><key>javascript.builtins.Temporal.ZonedDateTime.inLeapYear</key><key>javascript.builtins.Temporal.ZonedDateTime.microsecond</key><key>javascript.builtins.Temporal.ZonedDateTime.millisecond</key><key>javascript.builtins.Temporal.ZonedDateTime.minute</key><key>javascript.builtins.Temporal.ZonedDateTime.month</key><key>javascript.builtins.Temporal.ZonedDateTime.monthCode</key><key>javascript.builtins.Temporal.ZonedDateTime.monthsInYear</key><key>javascript.builtins.Temporal.ZonedDateTime.nanosecond</key><key>javascript.builtins.Temporal.ZonedDateTime.offset</key><key>javascript.builtins.Temporal.ZonedDateTime.offsetNanoseconds</key><key>javascript.builtins.Temporal.ZonedDateTime.round</key><key>javascript.builtins.Temporal.ZonedDateTime.second</key><key>javascript.builtins.Temporal.ZonedDateTime.since</key><key>javascript.builtins.Temporal.ZonedDateTime.startOfDay</key><key>javascript.builtins.Temporal.ZonedDateTime.subtract</key><key>javascript.builtins.Temporal.ZonedDateTime.timeZoneId</key><key>javascript.builtins.Temporal.ZonedDateTime.toInstant</key><key>javascript.builtins.Temporal.ZonedDateTime.toJSON</key><key>javascript.builtins.Temporal.ZonedDateTime.toLocaleString</key><key>javascript.builtins.Temporal.ZonedDateTime.toPlainDate</key><key>javascript.builtins.Temporal.ZonedDateTime.toPlainDateTime</key><key>javascript.builtins.Temporal.ZonedDateTime.toPlainTime</key><key>javascript.builtins.Temporal.ZonedDateTime.toString</key><key>javascript.builtins.Temporal.ZonedDateTime.until</key><key>javascript.builtins.Temporal.ZonedDateTime.valueOf</key><key>javascript.builtins.Temporal.ZonedDateTime.weekOfYear</key><key>javascript.builtins.Temporal.ZonedDateTime.with</key><key>javascript.builtins.Temporal.ZonedDateTime.withCalendar</key><key>javascript.builtins.Temporal.ZonedDateTime.withPlainTime</key><key>javascript.builtins.Temporal.ZonedDateTime.withTimeZone</key><key>javascript.builtins.Temporal.ZonedDateTime.year</key><key>javascript.builtins.Temporal.ZonedDateTime.yearOfWeek</key></compat_features><canonical_url>https://nowyoucanuse.com/features--temporal.html</canonical_url></feature>