PHP 8.4.2 Released!

IntlCalendar::set

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

IntlCalendar::setУстанавливает поле времени или сразу несколько общих полей

Описание

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

public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
    int $year,
    int $month,
    int $dayOfMonth = NULL,
    int $hour = NULL,
    int $minute = NULL,
    int $second = NULL
): true

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

intlcal_set(IntlCalendar $cal, int $field, int $value): true
intlcal_set(
    IntlCalendar $cal,
    int $year,
    int $month,
    int $dayOfMonth = NULL,
    int $hour = NULL,
    int $minute = NULL,
    int $second = NULL
): bool

Метод устанавливает либо конкретное поле на заданное значение, либо устанавливает сразу несколько общих полей. Диапазон допустимых значений зависит от того, использует ли календарь мягкий режим.

Для полей, которые конфликтуют, поля, которые устанавливаются позже, приоритетнее.

Метод нельзя вызвать ровно с четырьмя аргументами.

Список параметров

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"

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

  • IntlCalendar::get() - Получает значение поля
  • IntlCalendar::add() - Добавляет количество (со знаком) времени в поле
  • IntlCalendar::roll() - Добавляет значение в поле без переноса в более важные поля

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top