ConFoo 2025

IntlCalendar::roll

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

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

説明

オブジェクト指向型

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

手続き型

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"

参考

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top