php8.5
Home/ Manual/ intl / intlcalendar/ IntlCalendar::roll

IntlCalendar::roll

PHP function Edit on GitHub ✎

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

Add value to field without carrying into more significant fields

Description

Oop

IntlCalendar::roll(int $field, int|bool $value): bool

Procedural

intlcal_roll(IntlCalendar $calendar, int $field, int|bool $value): 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.

Parameters

calendar

Intl-calendar

field

Incfieldparam

value

The (signed) amount to add to the field, true for rolling up (adding 1), or false for rolling down (subtracting 1).

Return Values

Returns true on success or false on failure.

Examples

IntlCalendar::roll()

php
<?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"

The above example will output:

output
string(20) "01/07/2013, 00:00:00"
string(20) "01/06/2013, 00:00:00"

See Also

  • IntlCalendar::add
  • IntlCalendar::set

Source: reference/intl/intlcalendar/roll.xml · from the official PHP manual (php/doc-en)