次のフィールドを繰り上げずに、フィールドに値を加算する

# IntlCalendar::roll

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

IntlCalendar::roll — 次のフィールドを繰り上げずに、フィールドに値を加算する

### 説明

オブジェクト指向型

public function IntlCalendar::roll(int `$field`, int|bool `$value`): bool

手続き型

function intlcal_roll(IntlCalendar `$calendar`, int `$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"

### 参考

- IntlCalendar::add() - フィールドに (符号付きの) 一定量の時間を追加する
- IntlCalendar::set() - 時刻または複数の共通フィールドを一度に設定する

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