IntlCalendar::roll

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

IntlCalendar::rollAdd 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

One of the IntlCalendar date/time field constants. These are integer values between 0 and 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.

����

Example #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"

�μ�