CascadiaPHP 2024


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

IntlCalendar::rollAdd value to field without carrying into more significant fields


Style orienté objet

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

Style procédural

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.

Liste de paramètres


Une instance IntlCalendar.


Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.


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

Valeurs de retour

Returns true on success or false on failure.


Exemple #1 IntlCalendar::roll()

('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"

L'exemple ci-dessus va afficher :

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

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top