PHP Conference Nagoya 2025

IntlDateFormatter::setCalendar

datefmt_set_calendar

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

IntlDateFormatter::setCalendar -- datefmt_set_calendarSets the calendar type used by the formatter

Опис

Об'єктно-орієнтований стиль

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

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

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

Sets the calendar or calendar type used by the formatter.

Параметри

formatter

The formatter resource.

calendar

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 в разі помилки.

Журнал змін

Версія Опис
PECL intl 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

Прогляньте також

add a note

User Contributed Notes

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