(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::set — Устанавливает поле времени или сразу несколько общих полей
Объектно-ориентированный стиль
$year
,$month
,$dayOfMonth
= NULL,$hour
= NULL,$minute
= NULL,$second
= NULLПроцедурный стиль
$cal
,$year
,$month
,$dayOfMonth
= NULL,$hour
= NULL,$minute
= NULL,$second
= NULLУстанавливает либо конкретное поле на заданное значение, либо устанавливает сразу несколько общих полей. Диапазон допустимых значений зависит от того, использует ли календарь мягкий режим.
Для полей, которые конфликтуют, поля, которые устанавливаются позже, имеют приоритет.
Этот метод нельзя вызвать ровно с четырьмя аргументами.
cal
Экземпляр IntlCalendar.
field
Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число
от 0
до
IntlCalendar::FIELD_COUNT
.
value
Новое значение указанного поля.
year
Новое значение для IntlCalendar::FIELD_YEAR
.
month
Новое значение для IntlCalendar::FIELD_MONTH
.
Последовательность месяцев отсчитывается от нуля, т.е. январь представлен 0,
февраль - 1, ..., декабрь - 11, а Тринадцатый месяц (если в календаре) - 12.
dayOfMonth
Новое значение для IntlCalendar::FIELD_DAY_OF_MONTH
.
hour
Новое значение для IntlCalendar::FIELD_HOUR_OF_DAY
.
minute
Новое значение для IntlCalendar::FIELD_MINUTE
.
second
Новое значение для IntlCalendar::FIELD_SECOND
.
Функция всегда возвращает true
.
Пример #1 Пример использования IntlCalendar::set()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');
// Вызовы, сделанные позже, приоритетнее
$cal = new IntlGregorianCalendar(2013, 6 /* Июль */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));
$cal = new IntlGregorianCalendar(2013, 6 /* Июль */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
// Время еще не пересчитано. Если мы очистим EXTENDED_YEAR,
// будет использован предыдущий год.
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));
Результат выполнения приведённого примера:
string(20) "01/07/2011, 00:00:00" string(20) "01/07/2012, 00:00:00"