This feature is not Baseline because it does not work in some of the most widely-used browsers.
The withCalendar() method of Temporal.PlainDate instances returns a new Temporal.PlainDate object representing this date interpreted in the new calendar system. Because all Temporal objects are designed to be immutable, this method essentially functions as the setter for the date's calendarId property.
To replace the date component properties, use the with() method instead.
withCalendar(calendar)
calendarA string that corresponds to the calendarId property. See Intl.supportedValuesOf() for a list of commonly supported calendar types.
A new Temporal.PlainDate object, representing the date specified by the original PlainDate, interpreted in the new calendar system.
TypeErrorThrown if calendar is not a string.
RangeErrorThrown if calendar is not a valid calendar identifier.
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.withCalendar("islamic-umalqura");
console.log(newDate.toLocaleString("en-US", { calendar: "islamic-umalqura" }));
// 11/21/1442 AH
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
withCalendar |
144 | 144 | 139Calendarsislamic, islamic-rgsa and islamic-umalqura are not available. See bug 1950425 and bug 1954138. |
No | No | 144 | 139Calendarsislamic, islamic-rgsa and islamic-umalqura are not available. See bug 1950425 and bug 1954138. |
No | No | No | 144 | No | ? | 1.40 | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/withCalendar