PHP 8.1.0 Released!

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendarУстанавливает тип календаря, используемый средством форматирования

Описание

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

public IntlDateFormatter::setCalendar(IntlCalendar|int|null $calendar): bool

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

datefmt_set_calendar(IntlDateFormatter $formatter, IntlCalendar|int|null $calendar): bool

Устанавливает тип календаря, используемый средством форматирования.

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

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($fmtIntlDateFormatter::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"NULLNULL"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

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

  • datefmt_get_calendar() - Получает тип календаря, используемый IntlDateFormatter
  • datefmt_get_calendar_object() - Получает копию объекта календаря средства форматирования
  • datefmt_create() - Создаёт средство форматирования даты

add a note add a note

User Contributed Notes

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