Umm..I am not sure how the Islamic/Hijri calendar gonna work. Tomorrow is the first Shabaan in Pakistan but it is still 30th Rajab in Saudia. How will JS figure this difference out?
There's no geographic adjustment but at least there is some choice for users about which Islamic calendar variation should be used. For example, "islamic-rgsa" in JS is the Hijri calendar, Saudi Arabia sighting.
Temporal has built-in support for non-Gregorian calendars, including parsing, arithmetic, etc. so you can do things like this:
function chineseNewYears() {
const dt = Temporal.Now.plainDateISO().withCalendar('chinese');
const current = Temporal.PlainDate.from({year: dt.year, month: 1, day: 1, calendar: 'chinese'})
const next = current.add({years: 1})
return { current, next }
}
`The next Chinese New Year is ${chineseNewYears().next.withCalendar('gregory').toLocaleString('en-UK')}`
// => 'The next Chinese New Year is 17/02/2026'