(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::roll — Добавляет значение в поле без переноса в более важные поля
Объектно-ориентированный стиль
Процедурный стиль
Добавляет количество (со знаком) в поле. Отличие от IntlCalendar::add() состоит в том, что когда значение поля переполняется, оно не переносится в более важные поля.
calendar
Экземпляр класса IntlCalendar.
field
Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число
от 0
до
IntlCalendar::FIELD_COUNT
.
value
Количество (со знаком), добавляемое к полю, true
для сворачивания (добавление 1
)
или false
для скатывания вниз (вычитание 1
).
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Пример #1 Пример использования IntlCalendar::roll()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');
$cal = new IntlGregorianCalendar(2013, 5 /* Июнь */, 30);
$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"
$cal->set(2013, 5 /* Июнь */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // свернуть так же, как скатиться +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"
Результат выполнения приведённого примера:
string(20) "01/07/2013, 00:00:00" string(20) "01/06/2013, 00:00:00"