(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
.
Версия | Описание |
---|---|
8.2.0 |
Значение возврата теперь принадлежит типу true ; раньше значение принадлежало типу bool.
|
8.4.0 | Метод устарел в пользу методов IntlCalendar::setDate() и IntlCalendar::setDateTime(). |
Пример #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"