IntlCalendar::roll

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

IntlCalendar::rollAdiciona valor ao campo sem transferir para campos mais significativos

Descrição

Estilo orientado a objetos

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

Estilo procedural

intlcal_roll(IntlCalendar $calendar, int $field, int|bool $value): bool

Adiciona uma quantidade (com sinal) a um campo. A diferença em relação a IntlCalendar::add() é que quando o valor do campo passar do limite, a função não transfere este transbordamento para campos mais significativos.

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

value

A quantidade (com sinal) para adicionar ao campo, true para aumentar (adicionar 1), ou false para reduzir (subtrair 1).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Example #1 IntlCalendar::roll()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 5 /* junho */, 30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013, 5 /* junho */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // soma +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"

O exemplo acima produzirá:

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

Veja Também