array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'intlcalendar.roll.php', 1 => 'IntlCalendar::roll', ), 'up' => array ( 0 => 'class.intlcalendar.php', 1 => 'IntlCalendar', ), 'prev' => array ( 0 => 'intlcalendar.isweekend.php', 1 => 'IntlCalendar::isWeekend', ), 'next' => array ( 0 => 'intlcalendar.set.php', 1 => 'IntlCalendar::set', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/intl/intlcalendar/roll.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::roll — Add value to field without carrying into more significant fields
面向对象风格
过程化风格
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.
calendar
IntlCalendar 实例。
field
One of the IntlCalendar date/time field constants. These are integer
values between 0
and
IntlCalendar::FIELD_COUNT
.
value
The (signed) amount to add to the field, true
for rolling up (adding
1
), or false
for rolling down (subtracting
1
).
示例 #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"