(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::setCalendar -- datefmt_set_calendar — Устанавливает тип календаря, используемый средством форматирования
Объектно-ориентированный стиль
Процедурный стиль
Устанавливает тип календаря, используемый средством форматирования.
formatter
Ресурс средства форматирования.
calendar
Может быть: тип календаря для использования
(по умолчанию IntlDateFormatter::GREGORIAN
, который также используется, если указано значение null
)
или объект IntlCalendar.
Любой переданный объект IntlCalendar будет клонирован; в объект аргумента не будет внесено никаких изменений.
Часовой пояс средства форматирования будет сохранён только в том случае, если объект IntlCalendar не передан, в противном случае новый часовой пояс будет таким же, как у переданного объекта.
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Версия | Описание |
---|---|
5.5.0/PECL 3.0.0 | Добавлена возможность передать объект IntlCalendar. |
Пример #1 Пример использования datefmt_set_calendar()
<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип календаря средства форматирования : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Теперь тип календаря : ' . datefmt_get_calendar($fmt);
?>
Пример #2 Пример использования в объектно-ориентированном стиле
<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип календаря средства форматирования : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Теперь тип календаря : ' . $fmt->getCalendar();
?>
Результат выполнения приведённого примера:
Тип календаря средства форматирования : 1 Теперь тип календаря : 0
Пример #3 Пример использования IntlCalendar с параметром
<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");
echo "До: ", $formatter->format($time), "\n";
/* обратите внимание, что языковой стандарт календаря не используется! */
$formatter->setCalendar(IntlCalendar::createInstance(
"America/New_York", "pt_PT@calendar=islamic"));
echo "После: ", $formatter->format($time), "\n";
Результат выполнения приведённого примера:
До: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time После: Saturday, Rabiʻ II 20, 1434 at 7:00:00 PM Eastern Standard Time