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

# 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 — Создаёт средство форматирования даты

### Описание

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

public static function IntlDateFormatter::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

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

public function IntlDateFormatter::__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`
)

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

function datefmt_create(
?string `$locale`,
int `$dateType` = `IntlDateFormatter::FULL`,
int `$timeType` = `IntlDateFormatter::FULL`,
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` в случае возникновения ошибки.

### Ошибки

Если значение параметра `locale` некорректно, выбрасывается ошибка ValueError.

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

Версия | Описание
--- | ---
8.4.0 | Теперь если значение параметра `locale` некорректно, выбрасывается ошибка ValueError.
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 Пример использования в объектно-ориентированном стиле

    <?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() - Получает текст ошибки последней операции

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open