IntlCalendar::roll
(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)
IntlCalendar::roll — Add value to field without carrying into more significant fields
説明
オブジェクト指向型
public IntlCalendar::roll
( int $field
, mixed $amountOrUpOrDown
) : bool
手続き型
intlcal_roll
( IntlCalendar $cal
, int $field
, mixed $amountOrUpOrDown
) : bool
Adds a (signed) amount to a field. The difference with respect to IntlCalendar::add() is that when the field value overflows, it does not carry into more significant fields.
パラメータ
cal
- The IntlCalendar resource.
field
- IntlCalendar の日付/時刻 フィールド定数 のいずれか。
0
からIntlCalendar::FIELD_COUNT
までの間の整数値です。 amountOrUpOrDown
- The (signed) amount to add to the field,
true
for rolling up (adding1
), orfalse
for rolling down (subtracting1
).
返り値
Returns true
on success or false
on failure.
例
例1 IntlCalendar::roll()
<?phpini_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 +1var_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"
参考
- IntlCalendar::add() - Add a (signed) amount of time to a field
- IntlCalendar::set() - Set a time field or several common fields at once