# IntlCalendar::roll

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

IntlCalendar::roll — Ajoute une valeur à un champ sans la reporter sur les champs plus significatifs

### Description

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

Ajoute une valeur (signée) à un champ. La différence avec IntlCalendar::add() est que lorsque la valeur du champ déborde, elle ne se reporte pas sur les champs plus significatifs.

### Liste de paramètres

`calendar`

  Une instance IntlCalendar.

`field`

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

`value`

  La valeur (signée) à ajouter au champ, `true` pour aller vers le haut (ajoutant `1`), ou `false` pour aller vers le bas (soustrayant `1`).

### Valeurs de retour

Renvoie `true` en cas de succès ou `false` en cas d'échec.

### Exemples

Exemple #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); // aller en up, comme rouler +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

- IntlCalendar::add() - Ajoute une durée (signée) à un champ
- IntlCalendar::set() - Définit un champ de temps ou plusieurs champs communs en une seule fois