CakeFest 2024: The Official CakePHP Conference

IntlCalendar::roll

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

IntlCalendar::rollДобавляет значение в поле без переноса в более важные поля

Описание

Объектно-ориентированный стиль

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

Процедурный стиль

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

Добавляет количество (со знаком) в поле. Отличие от 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"

Смотрите также

  • IntlCalendar::add() - Добавляет количество (со знаком) времени в поле
  • IntlCalendar::set() - Устанавливает поле времени или сразу несколько общих полей

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top