このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Intl.Locale.prototype.calendar

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年9月.

calendarIntl.Locale インスタンスのアクセサープロパティで、個のロケールで使用される暦の種類を返します。

解説

世界の大半はグレゴリオ暦を使用していますが、世界各地でいくつかの地域的な暦体系が使用されています。対応している暦の種類の一覧については、Intl.supportedValuesOf() を参照してください。

calendar プロパティの値は、ロケール識別子の ca キーまたは Intl.Locale() コンストラクターの calendar オプションを通じて、構築時に設定されます。両方が存在する場合、後者が優先されます。どちらも存在しない場合、プロパティの値は undefined となります。

calendar の設定アクセサーは undefined です。このプロパティを直接変更することはできません。

他のロケールサブタグと同様に、暦の種類はロケール文字列を介して、またはコンストラクターへの構成オブジェクト引数として、Intl.Locale オブジェクトに追加できます。

ロケール文字列へのカレンダーの追加

Unicode locale string spec において、calendar は「拡張サブタグ」に該当します。これらのキーは、ロケールに関するデータを追加するもので、拡張子 -u を使用してロケール識別子に追加します。したがって、 Intl.Locale() コンストラクターに渡される初期のロケール識別子文字列に暦の種類を追加することができます。暦の種類を追加するには、まず文字列に -u 拡張を追加します。次に、暦の種類を追加することを示すために -ca 拡張を追加します。最後に、暦を文字列に追加します。

js
const locale = new Intl.Locale("fr-FR-u-ca-buddhist");
console.log(locale.calendar); // "buddhist" と表示

構成オブジェクトによる暦の追加

Intl.Locale() コンストラクターには、オプションで構成オブジェクトの引数があり、カレンダーを含めた拡張の種類を渡すために使用することができます。構成オブジェクトの calendar プロパティを望みの暦の値に設定し、コンストラクターに渡します。

js
const locale = new Intl.Locale("fr-FR", { calendar: "buddhist" });
console.log(locale.calendar); // "buddhist" と表示

仕様書

Specification
ECMAScript® 2026 Internationalization API Specification
# sec-Intl.Locale.prototype.calendar

ブラウザーの互換性

関連情報