IntlCalendar::roll()
(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)
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
One of the IntlCalendar date/time field constants. These are integer values between0and
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.
范例
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() Add a(signed)amount of time to a field
- IntlCalendar::set() Set a time field or several common fields at once