(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::roll — 次のフィールドを繰り上げずに、フィールドに値を加算する
オブジェクト指向型
$field
, int|bool $value
): bool手続き型
(符号付きの)量をフィールドに加算します。 IntlCalendar::add() との違いは、 フィールドの値がオーバーフローしても、 次のフィールドの値が繰り上がらないことです。
calendar
IntlCalendar クラスのインスタンス。
field
IntlCalendar の日付/時刻 フィールド定数 のいずれか。
0
から
IntlCalendar::FIELD_COUNT
までの間の整数値です。
value
フィールドに加算する(符号付きの)量。
true
を指定すると値を増やします
(つまり、1
を足します)。
false
を指定すると値を減らします
(つまり、1
を引きます)。
成功時に true
を返します。
失敗した場合は false
を返します。
例1 IntlCalendar::roll()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');
$cal = new IntlGregorianCalendar(2013, 5 /* June */, 30);
$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"
$cal->set(2013, 5 /* June */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // roll up, same as rolling +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"
上の例の出力は以下となります。
string(20) "01/07/2013, 00:00:00" string(20) "01/06/2013, 00:00:00"