# IntlCalendar クラス

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

## はじめに

## クラス概要

class IntlCalendar {
/* 定数 */
public const int FIELD_ERA;
public const int FIELD_YEAR;
public const int FIELD_MONTH;
public const int FIELD_WEEK_OF_YEAR;
public const int FIELD_WEEK_OF_MONTH;
public const int FIELD_DATE;
public const int FIELD_DAY_OF_YEAR;
public const int FIELD_DAY_OF_WEEK;
public const int FIELD_DAY_OF_WEEK_IN_MONTH;
public const int FIELD_AM_PM;
public const int FIELD_HOUR;
public const int FIELD_HOUR_OF_DAY;
public const int FIELD_MINUTE;
public const int FIELD_SECOND;
public const int FIELD_MILLISECOND;
public const int FIELD_ZONE_OFFSET;
public const int FIELD_DST_OFFSET;
public const int FIELD_YEAR_WOY;
public const int FIELD_DOW_LOCAL;
public const int FIELD_EXTENDED_YEAR;
public const int FIELD_JULIAN_DAY;
public const int FIELD_MILLISECONDS_IN_DAY;
public const int FIELD_IS_LEAP_MONTH;
public const int FIELD_FIELD_COUNT;
public const int FIELD_DAY_OF_MONTH;
public const int DOW_SUNDAY;
public const int DOW_MONDAY;
public const int DOW_TUESDAY;
public const int DOW_WEDNESDAY;
public const int DOW_THURSDAY;
public const int DOW_FRIDAY;
public const int DOW_SATURDAY;
public const int DOW_TYPE_WEEKDAY;
public const int DOW_TYPE_WEEKEND;
public const int DOW_TYPE_WEEKEND_OFFSET;
public const int DOW_TYPE_WEEKEND_CEASE;
public const int WALLTIME_FIRST;
public const int WALLTIME_LAST;
public const int WALLTIME_NEXT_VALID;
/* メソッド */
private function __construct()
public function add(int `$field`, int `$value`): bool
public function after(IntlCalendar `$other`): bool
public function before(IntlCalendar `$other`): bool
public function clear(?int `$field` = `null`): true
public static function createInstance(IntlTimeZone|DateTimeZone|string|null `$timezone` = `null`, ?string `$locale` = `null`): ?IntlCalendar
public function equals(IntlCalendar `$other`): bool
public function fieldDifference(float `$timestamp`, int `$field`): int|false
public static function fromDateTime(DateTime|string `$datetime`, ?string `$locale` = `null`): ?IntlCalendar
public function get(int `$field`): int|false
public function getActualMaximum(int `$field`): int|false
public function getActualMinimum(int `$field`): int|false
public static function getAvailableLocales(): array
public function getDayOfWeekType(int `$dayOfWeek`): int|false
public function getErrorCode(): int|false
public function getErrorMessage(): string|false
public function getFirstDayOfWeek(): int|false
public function getGreatestMinimum(int `$field`): int|false
public static function getKeywordValuesForLocale(string `$keyword`, string `$locale`, bool `$onlyCommon`): IntlIterator|false
public function getLeastMaximum(int `$field`): int|false
public function getLocale(int `$type`): string|false
public function getMaximum(int `$field`): int|false
public function getMinimalDaysInFirstWeek(): int|false
public function getMinimum(int `$field`): int|false
public static function getNow(): float
public function getRepeatedWallTimeOption(): int
public function getSkippedWallTimeOption(): int
public function getTime(): float|false
public function getTimeZone(): IntlTimeZone|false
public function getType(): string
public function getWeekendTransition(int `$dayOfWeek`): int|false
public function inDaylightTime(): bool
public function isEquivalentTo(IntlCalendar `$other`): bool
public function isLenient(): bool
public function isSet(int `$field`): bool
public function isWeekend(?float `$timestamp` = `null`): bool
public function roll(int `$field`, int|bool `$value`): bool
public function set(int `$field`, int `$value`): true
public function set(
int `$year`,
int `$month`,
int `$dayOfMonth` = NULL,
int `$hour` = NULL,
int `$minute` = NULL,
int `$second` = NULL
): true
public function setDate(int `$year`, int `$month`, int `$dayOfMonth`): void
public function setDateTime(
int `$year`,
int `$month`,
int `$dayOfMonth`,
int `$hour`,
int `$minute`,
?int `$second` = `null`
): void
public function setFirstDayOfWeek(int `$dayOfWeek`): true
public function setLenient(bool `$lenient`): true
public function setMinimalDaysInFirstWeek(int `$days`): true
public function setRepeatedWallTimeOption(int `$option`): true
public function setSkippedWallTimeOption(int `$option`): true
public function setTime(float `$timestamp`): bool
public function setTimeZone(IntlTimeZone|DateTimeZone|string|null `$timezone`): bool
public function toDateTime(): DateTime|false
}

## 定義済み定数

`IntlCalendar::FIELD_ERA` int

  カレンダーのフィールドで、時代を表す数値です。たとえば、グレゴリオ暦やユリウス暦の場合は `1` が紀元後そして `0` が紀元前を表します。 また、和暦の場合は `235` が平成を表します。 すべてのカレンダーが複数の時代を持つわけではありません。

`IntlCalendar::FIELD_YEAR` int

  カレンダーの、年を表すフィールド。時代が違えば同じ数字になることもあります。 そのカレンダー型が複数の時代を持っている場合は、このフィールドの最小値は通常は `1` になります。

`IntlCalendar::FIELD_MONTH` int

  カレンダーの、月を表すフィールド。月番号はゼロからはじまるので、1月が `0`、2月が `1`、…そして12月が `11` となります。13番目の月あるいはうるう月があるカレンダーの場合は、`12` で表します。

`IntlCalendar::FIELD_WEEK_OF_YEAR` int

  カレンダーの、年内の週番号を表すフィールド。 これは、何曜日を週の開始日とみなすか、そして週の最小日数は何日かによって決まります。

`IntlCalendar::FIELD_WEEK_OF_MONTH` int

  カレンダーの、月内の週番号を表すフィールド。 これは、何曜日を週の開始日とみなすか、そして週の最小日数は何日かによって決まります。

`IntlCalendar::FIELD_DATE` int

  カレンダーの、月内の日数を表すフィールド。 `IntlCalendar::FIELD_DAY_OF_MONTH` と同じで、こちらのほうがよりわかりやすい名前です。

`IntlCalendar::FIELD_DAY_OF_YEAR` int

  カレンダーの、年内の日数を表すフィールド。 グレゴリオ暦の場合は、`1` から始まって `365` あるいは `366` で終わります。

`IntlCalendar::FIELD_DAY_OF_WEEK` int

  カレンダーの、曜日を表すフィールド。 最初の値は `1` (日曜日。`IntlCalendar::DOW_SUNDAY` とそれに続く定数を参照ください) で、有効な最後の値は 7 (土曜日) です。

`IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH` int

  曜日 (日曜日、月曜日、…) を指定されたときに、このフィールドには当月内でその曜日が何番目に登場するのかを代入します。 つまり、このフィールドの値が `1` で曜日番号が `2` (月曜日) だったとすると、 当月の第一月曜日の日付が設定されます。 最大値は `5` です。

  さらに、`0` や負の数も使えます。 `0` は、ある月の最初の (day of week in month の値が `1` となる) 七日間の直前の七日間を表します。 負の値を指定した場合は、月末から数えます。`-1` は、その曜日が当月の最後に登場する日付、 `-2` はさらにその一週間前といったようになります。

  `IntlCalendar::FIELD_WEEK_OF_MONTH` や `IntlCalendar::FIELD_WEEK_OF_YEAR` とは異なり、この値は IntlCalendar::getFirstDayOfWeek() や IntlCalendar::getMinimalDaysInFirstWeek() に依存しません。 第一月曜日は第一月曜日であり、たとえ前月に属する日であってもそれは変わりません。

`IntlCalendar::FIELD_AM_PM` int

  カレンダーの、午前 (`0`) か午後 (`1`) かを表すフィールド。 深夜 0 時は午前、正午は午後となります。

`IntlCalendar::FIELD_HOUR` int

  カレンダーの、時間を表すフィールド。午前か午後かは含みません。 有効な値は `0` から `11` までです。

`IntlCalendar::FIELD_HOUR_OF_DAY` int

  カレンダーの、24 時間制の時間を表すフィールド。 有効な値は `0` から `23` までです。

`IntlCalendar::FIELD_MINUTE` int

  カレンダーの、分を表すフィールド。

`IntlCalendar::FIELD_SECOND` int

  カレンダーの、秒を表すフィールド。

`IntlCalendar::FIELD_MILLISECOND` int

  カレンダーの、ミリ秒を表すフィールド。

`IntlCalendar::FIELD_ZONE_OFFSET` int

  カレンダーの、タイムゾーンのオフセットをミリ秒で表すフィールド。 夏時間によるオフセットは含みません。

`IntlCalendar::FIELD_DST_OFFSET` int

  カレンダーの、夏時間によるオフセットをミリ秒で表すフィールド。 夏時間を採用しているタイムゾーンの場合に使います。

`IntlCalendar::FIELD_YEAR_WOY` int

  カレンダーの、week of year 用の年を表すフィールド。

`IntlCalendar::FIELD_DOW_LOCAL` int

  カレンダーの、ローカライズした曜日を表すフィールド。 `1` から `7` までの値となり、 `1` は IntlCalendar::getFirstDayOfWeek() が返す値にマッチする曜日に使います。

`IntlCalendar::FIELD_EXTENDED_YEAR` int

  カレンダーの、年番号を表すフィールド。この番号は、時代をまたがって続きます。 グレゴリオ暦の場合、紀元後の年についてはこの値は `IntlCalendar::FIELD_YEAR` に一致します。 紀元前 `y` 年の場合は `-y + 1` となります。

`IntlCalendar::FIELD_JULIAN_DAY` int

  カレンダーの、ユリウス日を表すフィールド。 一般的な慣習とは違って、このユリウス日は現地時間の深夜 0 時に加算されます。 UTC の正午ではありません。 これで、日付を一意に特定します。

`IntlCalendar::FIELD_MILLISECONDS_IN_DAY` int

  カレンダーの、 `IntlCalendar::FIELD_HOUR_OF_DAY` や `IntlCalendar::FIELD_MINUTE`、 `IntlCalendar::FIELD_SECOND`、そして `IntlCalendar::FIELD_MILLISECOND` の情報をまとめたフィールド。 `0` から `24 * 3600 * 1000 - 1` までの値となります。この値は、その日の中での経過ミリ秒数ではありません。 というのも、夏時間への移行を挟む場合はこの値は連続した値にならないからです。

`IntlCalendar::FIELD_IS_LEAP_MONTH` int

  カレンダーのフィールドで、値が `1` のときはうるう月、 `0` の場合はそうでないことを表します。

`IntlCalendar::FIELD_FIELD_COUNT` int

  フィールドの総数。

`IntlCalendar::FIELD_DAY_OF_MONTH` int

  `IntlCalendar::FIELD_DATE` のエイリアス。

`IntlCalendar::DOW_SUNDAY` int

  日曜日。

`IntlCalendar::DOW_MONDAY` int

  月曜日。

`IntlCalendar::DOW_TUESDAY` int

  火曜日。

`IntlCalendar::DOW_WEDNESDAY` int

  水曜日。

`IntlCalendar::DOW_THURSDAY` int

  木曜日。

`IntlCalendar::DOW_FRIDAY` int

  金曜日。

`IntlCalendar::DOW_SATURDAY` int

  土曜日。

`IntlCalendar::DOW_TYPE_WEEKDAY` int

  平日であることを示す IntlCalendar::getDayOfWeekType() の出力。

`IntlCalendar::DOW_TYPE_WEEKEND` int

  週末であることを示す IntlCalendar::getDayOfWeekType() の出力。

`IntlCalendar::DOW_TYPE_WEEKEND_OFFSET` int

  指定した曜日から週末が始まることを示す IntlCalendar::getDayOfWeekType() の出力。

`IntlCalendar::DOW_TYPE_WEEKEND_CEASE` int

  指定した曜日で週末が終わることを示す IntlCalendar::getDayOfWeekType() の出力。

`IntlCalendar::WALLTIME_FIRST` int

  スキップした範囲内の実測時間が一時間前の実測時間と同じ瞬間を指すことを示す IntlCalendar::getSkippedWallTimeOption() の出力。 また、繰り返した範囲内の実測時間がその最初のほうを指すことを示す IntlCalendar::getRepeatedWallTimeOption() の出力。

`IntlCalendar::WALLTIME_LAST` int

  スキップした範囲内の実測時間が一時間後の実測時間と同じ瞬間を指すことを示す IntlCalendar::getSkippedWallTimeOption() の出力。 また、繰り返した範囲内の実測時間がその二番目のほうを指すことを示す IntlCalendar::getRepeatedWallTimeOption() の出力。

`IntlCalendar::WALLTIME_NEXT_VALID` int

  スキップした範囲内の実測時間が夏時間への移行 (開始) を指すことを示す IntlCalendar::getSkippedWallTimeOption() の出力。

## 変更履歴

バージョン | 説明
--- | ---
8.4.0 | クラス定数が型付けされました。

## 目次

- IntlCalendar::add — フィールドに (符号付きの) 一定量の時間を追加する
- IntlCalendar::after — このオブジェクトの時刻が、指定されたオブジェクトより未来かを判定する
- IntlCalendar::before — このオブジェクトの時刻が、指定されたオブジェクトより過去かを判定する
- IntlCalendar::clear — 単一または全てのフィールドをクリアする
- IntlCalendar::__construct — インスタンス化を禁止するための private なコンストラクタ
- IntlCalendar::createInstance — 新しい IntlCalendar を作成する
- IntlCalendar::equals — ふたつの IntlCalendar オブジェクトの時刻を比較する
- IntlCalendar::fieldDifference — 指定された時刻と、このオブジェクトの時刻の差を計算する
- IntlCalendar::fromDateTime — DateTime オブジェクトまたは文字列から、IntlCalendar を作成する
- IntlCalendar::get — フィールドの値を取得する
- IntlCalendar::getActualMaximum — オブジェクトの現在時刻を考慮して、フィールドの最大値を取得する
- IntlCalendar::getActualMinimum — オブジェクトの現在時刻を考慮して、フィールドの最小値を取得する
- IntlCalendar::getAvailableLocales — データが存在するロケールの配列を取得する
- IntlCalendar::getDayOfWeekType — 指定された日が平日か、週末か、ふたつの週の間の移行日かを返す
- IntlCalendar::getErrorCode — オブジェクトに関する直近のエラーコードを取得する
- IntlCalendar::getErrorMessage — オブジェクトの直近のエラーメッセージを取得する
- IntlCalendar::getFirstDayOfWeek — カレンダーのロケールに基づいて、週の始めの日を返す
- IntlCalendar::getGreatestMinimum — 指定されたフィールドの、ローカルな最小値のうち、最大の値を返す
- IntlCalendar::getKeywordValuesForLocale — ロケールのキーワードの値の集合を返す
- IntlCalendar::getLeastMaximum — 指定されたフィールドの、ローカルな最大値のうち、最小の値を返す
- IntlCalendar::getLocale — オブジェクトに関連付けられたロケールを取得する
- IntlCalendar::getMaximum — フィールドのグローバルな最大値を返す
- IntlCalendar::getMinimalDaysInFirstWeek — 特定の年や月における、最初の週の日数の最小値を返す
- IntlCalendar::getMinimum — フィールドのグローバルな最小値を返す
- IntlCalendar::getNow — 現在時刻を示す数値を取得する
- IntlCalendar::getRepeatedWallTimeOption — 繰り返される実時間を扱う際の振る舞いを取得する
- IntlCalendar::getSkippedWallTimeOption — スキップされた実時間を扱う際の振る舞いを取得する
- IntlCalendar::getTime — このオブジェクトが表す時刻を取得する
- IntlCalendar::getTimeZone — オブジェクトのタイムゾーンを取得する
- IntlCalendar::getType — カレンダーのタイプを取得する
- IntlCalendar::getWeekendTransition — 週末が開始/終了した日からの経過時間を取得する
- IntlCalendar::inDaylightTime — オブジェクトの時刻が夏時間かを調べる
- IntlCalendar::isEquivalentTo — 別のカレンダーが、時刻を除いて等しいかを調べる
- IntlCalendar::isLenient — 日付と時刻の解釈を「緩いモード」で行うかを取得する
- IntlCalendar::isSet — フィールドが設定されているかを調べる
- IntlCalendar::isWeekend — ある日付/時刻が週末にあるかを調べる
- IntlCalendar::roll — 次のフィールドを繰り上げずに、フィールドに値を加算する
- IntlCalendar::set — 時刻または複数の共通フィールドを一度に設定する
- IntlCalendar::setDate — 日付のフィールドを設定する
- IntlCalendar::setDateTime — 日付と時刻のフィールドを設定する
- IntlCalendar::setFirstDayOfWeek — 週の始まりと見なされる曜日を設定する
- IntlCalendar::setLenient — 日付/時刻の解釈を「緩いモード」にするかを設定する
- IntlCalendar::setMinimalDaysInFirstWeek — 特定の年や月における、最初の週の日数の最小値を設定する
- IntlCalendar::setRepeatedWallTimeOption — 負のタイムゾーンオフセットを適用した際に、繰り返される実時間をどう扱うかを設定する
- IntlCalendar::setSkippedWallTimeOption — 正のタイムゾーンオフセットを適用した際に、スキップされる実時間をどう扱うかを設定する
- IntlCalendar::setTime — エポックからのカレンダーの時刻をミリ秒単位で設定する
- IntlCalendar::setTimeZone — このカレンダーで使うタイムゾーンを設定する
- IntlCalendar::toDateTime — IntlCalendar を DateTime オブジェクトに変換する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open