IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

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

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__constructСоздаёт средство форматирования даты

Описание

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

publicstaticIntlDateFormatter::create(
    ?string$locale,
    int$dateType = IntlDateFormatter::FULL,
    int$timeType = IntlDateFormatter::FULL,
    IntlTimeZone|DateTimeZone|string|null$timezone = null,
    IntlCalendar|int|null$calendar = null,
    ?string$pattern = null
): ?IntlDateFormatter

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

publicIntlDateFormatter::__construct(
    ?string$locale,
    int$dateType = IntlDateFormatter::FULL,
    int$timeType = IntlDateFormatter::FULL,
    IntlTimeZone|DateTimeZone|string|null$timezone = null,
    IntlCalendar|int|null$calendar = null,
    ?string$pattern = null
)

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

datefmt_create(
    ?string$locale,
    int$dateType,
    int$timeType,
    IntlTimeZone|DateTimeZone|string|null$timezone = null,
    IntlCalendar|int|null$calendar = null,
    string$pattern = ""
): ?IntlDateFormatter

Создаёт средство форматирования даты.

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

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 в случае возникновения ошибки.

Список изменений

ВерсияОписание
8.1.0

Теперь параметры dateType и timeType необязательны.

Примеры

Пример #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 OO example

<?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

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

  • datefmt_format() - Форматирует значение даты/времени в виде строки
  • datefmt_parse() - Преобразовывает строку в значение отметки времени
  • datefmt_get_error_code() - Получает код ошибки последней операции
  • datefmt_get_error_message() - Получает текст ошибки последней операции
To Top