IntlCalendar
PHP Manual

IntlCalendar::roll

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

IntlCalendar::rollAdd value to field without carrying into more significant fields

説明

オブジェクト指向型

public bool IntlCalendar::roll ( int $field , mixed $amountOrUpOrDown )

手続き型

bool intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown )

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 (adding 1), or FALSE for rolling down (subtracting 1).

返り値

Returns TRUE on success or FALSE on failure.

例1 IntlCalendar::roll()

<?php
ini_set
('date.timezone''Europe/Lisbon');
ini_set('intl.default_locale''pt_PT');

$cal = new IntlGregorianCalendar(2013/* June */30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013/* June */30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTHtrue); // 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
PHP Manual