CakeFest 2024: The Official CakePHP Conference

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.

Примеры

Пример #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() - Добавляет значение в поле без переноса в более важные поля

add a note

User Contributed Notes

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