La función IntlCalendar::roll() es una función incorporada en PHP que se usa para agregar valor al campo sin llevar a campos más significativos. La diferencia entre IntlCalendar::roll() y la función IntlCalendar::add() es que, el valor de campo de la función IntlCalendar::roll() se desborda, no lleva a campos más significativos.
Sintaxis:
- Estilo orientado a objetos
bool IntlCalendar::roll( int $field, mixed $amountOrUpOrDown )
- Estilo procesal
bool intlcal_roll( IntlCalendar $cal, int $field, mixed $amountOrUpOrDown )
Parámetros:
- $cal: este parámetro contiene el recurso del objeto IntlCalendar.
- $field: este parámetro contiene una de las constantes de campo de fecha/hora de IntlCalendar. El valor de las constantes de campo es un número entero y se encuentra entre 0 e IntlCalendar::FIELD_COUNT.
- $amountOrUpOrDown: este parámetro contiene la cantidad firmada para agregar al campo. El valor VERDADERO representa acumular (sumar 1) y el valor FALSO representa reducir (restar 1) del campo DateTime.
Valor devuelto: esta función devuelve VERDADERO en caso de éxito o FALSO en caso de error.
El siguiente programa ilustra la función IntlCalendar::roll() en PHP:
Programa:
php
<?php // Set the DateTime zone ini_set('date.timezone', 'Asia/Calcutta'); // Create an instance of IntlCalendar $calendar = IntlCalendar::createInstance('Asia/Calcutta'); // Set the DateTime to the calendar object $calendar->set(2019, 8, 24); // Display the calendar object var_dump(IntlDateFormatter::formatObject($calendar)); // Roll down 1 day of date field $calendar->roll(IntlCalendar::FIELD_DAY_OF_MONTH, false); // Display the calendar object var_dump(IntlDateFormatter::formatObject($calendar)); ?>
Producción:
string(24) "Sep 24, 2019, 8:29:48 AM" string(24) "Sep 23, 2019, 8:29:48 AM"
Referencia: https://www.php.net/manual/en/intlcalendar.roll.php