# IntlCalendar::roll

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

IntlCalendar::roll — Añadir un valor a un campo si acarrear más campos significativos

### Descripción

Estilo orientado a objetos

public IntlCalendar::roll(int `$field`, mixed `$amountOrUpOrDown`): bool

Estilo por procedimientos

intlcal_roll(IntlCalendar `$cal`, int `$field`, mixed `$amountOrUpOrDown`): bool

Añade una cantidad (con signo) a un campo. La diferencia con respecto a IntlCalendar::add() es que cuando el valor del campo se desborda, no acarrea más campos significativos.

### Parámetros

`cal`

  El recurso IntlCalendar.

`field`

  Una de las constantes del campo fecha/hora de IntlCalendar. Son valores de tipo integer entre `0` y `IntlCalendar::FIELD_COUNT`.

`amountOrUpOrDown`

  La cantidad (con signo) a añadir al campo, `true` para subir (añadiendo `1`), o `false` para bajar (sustrayendo `1`).

### Valores devueltos

Devuelve `true` en caso de éxito, `false` en caso de error.

### Ejemplos

Ejemplo #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); // subir, lo mismo que subir +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"`

El resultado del ejemplo sería:

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

### Ver también

- IntlCalendar::add() - Añadir una candidad (con signo) de tiempo al campo
- IntlCalendar::set() - Establecer un campo de instante o varios campos en común de una vez