(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Создаёт средство форматирования даты
Объектно-ориентированный стиль
$locale
,$dateType
= IntlDateFormatter::FULL,$timeType
= IntlDateFormatter::FULL,$timezone
= null
,$calendar
= null
,$pattern
= null
Объектно-ориентированный стиль (конструктор)
$locale
,$dateType
= IntlDateFormatter::FULL,$timeType
= IntlDateFormatter::FULL,$timezone
= null
,$calendar
= null
,$pattern
= null
Процедурный стиль
$locale
,$dateType
,$timeType
,$timezone
= null
,$calendar
= null
,$pattern
= ""Создаёт средство форматирования даты.
locale
Языковой стандарт, который будет использован для форматирования или синтаксического анализа,
или null
для выбора значения, заданного в ini-настройке
intl.default_locale.
dateType
Формат даты, который был определён одной
из констант IntlDateFormatter.
Значение по умолчанию
IntlDateFormatter::FULL
.
timeType
Формат времени, который был определён одной
из констант IntlDateFormatter.
Значение по умолчанию
IntlDateFormatter::FULL
.
timezone
Идентификатор часового пояса. По умолчанию (и тот, который используется, если указан null
) — это тот,
который возвращается date_default_timezone_get() или, если применимо,
объект IntlCalendar, указанный в параметре calendar
.
Этот идентификатор должен быть корректным идентификатором в базе данных ICU или идентификатором,
представляющим явное смещение, например, GMT-05:30
.
Также может быть объект IntlTimeZone или DateTimeZone.
calendar
Календарь для форматирования или анализа. Значение по умолчанию — null
,
что соответствует IntlDateFormatter::GREGORIAN
.
Может быть одна из констант IntlDateFormatter
или объект IntlCalendar.
Любой переданный объект IntlCalendar будет клонирован; он не будет изменён IntlDateFormatter.
Это определит используемый тип календаря (григорианский, исламский, персидский и т.д.) и, если в параметре timezone
указано значение null
, также определит используемый часовой пояс.
pattern
Необязательный шаблон для использования при форматировании или анализе. Возможные шаблоны задокументированы по адресу » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.
Метод возвращает созданный объект IntlDateFormatter или null
в случае возникновения ошибки.
Если значение параметра locale
некорректно,
выбрасывается ошибка ValueError.
Версия | Описание |
---|---|
8.4.0 |
Теперь если значение параметра locale некорректно,
выбрасывается ошибка ValueError.
|
8.1.0 |
Теперь параметры |
Пример #1 Пример использования функции datefmt_create()
<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles', IntlDateFormatter::GREGORIAN );
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Second Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);
?>
Пример #2 Пример использования в объектно-ориентированном стиле
<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Первый форматированный вывод: ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Второй форматированный вывод: ".$fmt->format(0);
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Первый форматированный вывод с шаблоном: ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Второй форматированный вывод с шаблоном: ".$fmt->format(0);
?>
Пример #3 Пример обработки неверного значения языкового стандарта
<?php
try {
$fmt = new IntlDateFormatter(
'invalid_locale',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'dunno',
IntlDateFormatter::GREGORIAN,
);
} catch (\Error $e) {
// ...
}
?>
Результат выполнения приведённого примера:
Первый форматированный вывод: Wednesday, December 31, 1969 4:00:00 PM PT Второй форматированный вывод: Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00 Первый форматированный вывод с шаблоном: 12/31/1969 Второй форматированный вывод с шаблоном: 12/31/1969