• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • IntlCalendar::roll()

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

    Add value to field without carrying into more significant fields

    说明

    面向对象风格
    publicIntlCalendar::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), or FALSE 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