(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
IntlDateFormatter::setCalendar -- datefmt_set_calendar — Sets the calendar type used by the formatter
Объектно-ориентированный стиль
Процедурный стиль
Sets the calendar or calendar type used by the formatter.
fmtThe formatter resource.
which
       This can either be: the calendar
       type to use (default is
       IntlDateFormatter::GREGORIAN, which is also used if
       NULL is specified) or an
       IntlCalendar object.
     
Any IntlCalendar object passed in will be cloned; no modifications will be made to the argument object.
The timezone of the formatter will only be kept if an IntlCalendar object is not passed, otherwise the new timezone will be that of the passed object.
   Возвращает TRUE в случае успешного завершения  или FALSE в случае возникновения ошибки.
  
| Версия | Описание | 
|---|---|
| 5.5.0/PECL 3.0.0 | It became possible to pass an IntlCalendar object. | 
Пример #1 datefmt_set_calendar() example
<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . datefmt_get_calendar($fmt);
?>
Пример #2 OO example
<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN  
);
echo 'calendar of the formatter is : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . $fmt->getCalendar();
?>
Результат выполнения данного примера:
calendar of the formatter is : 1 Now calendar of the formatter is : 0
Пример #3 Example with IntlCalendar argument
<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");
echo "before: ", $formatter->format($time), "\n";
/* note that the calendar's locale is not used! */
$formatter->setCalendar(IntlCalendar::createInstance(
               "America/New_York", "pt_PT@calendar=islamic"));
echo "after:  ", $formatter->format($time), "\n";
Результат выполнения данного примера:
before: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time after: Saturday, Rabiʻ II 20, 1434 at 7:00:00 PM Eastern Standard Time