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

View in English Always switch to English

Intl.Locale.prototype.calendar

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。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" と表示

仕様書

仕様書
ECMAScript® 2027 Internationalization API Specification
# sec-Intl.Locale.prototype.calendar

ブラウザーの互換性

関連情報