Cria um formatador de data

# 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 — Cria um formatador de data

### Descrição

Estilo orientado a objetos

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

Estilo orientado a objetos (construtor)

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`
)

Estilo procedural

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` = `null`
): ?IntlDateFormatter

Cria um formatador de data.

### Parâmetros

`locale`

  Localidade a ser utilizada ao formatar ou interpretar, ou `null` para utilizar o valor especificado na configuração ini intl.default_locale.

`dateType`

  Formato da data determinado por uma das constantes IntlDateFormatter. O valor padrão é `IntlDateFormatter::FULL`.

`timeType`

  Formato do horário determinado por uma das constantes IntlDateFormatter. O valor padrão é `IntlDateFormatter::FULL`.

`timezone`

  ID do fuso horário. O padrão (que também é usado se `null` for fornecido) é o retornado por date_default_timezone_get() ou, se aplicável, o do objeto IntlCalendar passado para o parâmetro `calendar`. Este ID precisa ser um identificador válido no banco de dados da ICU ou um ID representando um deslocamento específico, como em `GMT-05:30`.

  Este parâmetro tammbém pode ser um objeto IntlTimeZone ou DateTimeZone.

`calendar`

  Calendário a ser utilizado para formatação ou interpretação. O valor padrão é `null`, que corresponde a `IntlDateFormatter::GREGORIAN`. Pode ser uma das constantes de calendário IntlDateFormatter ou um objeto IntlCalendar. Qualquer objeto IntlCalendar passado será clonado; ele não será alterado por IntlDateFormatter. Este parâmetro determinará o tipo de calendário utilizado (gregoriano, islâmico, persa, etc.) e, se `null` for fornecido para o parâmetro `timezone`, também definirá o fuso horário utilizado.

`pattern`

  Modelo opcional a ser utilizado ao formatar ou interpretar. Modelos possíveis estão documentados em » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

### Valor Retornado

O objeto IntlDateFormatter criado ou `null` em caso de falha.

### Erros/Exceções

Uma exceção ValueError é lançada se `locale` for inválido.

### Registro de Alterações

Versão | Descrição
--- | ---
8.4.0 | Uma exceção ValueError agora é lançada se `locale` for inválido.
8.1.0 | Parêmatros `dateType` e `timeType` agora são opcionais.

### Exemplos

Exemplo #1 Exemplo de datefmt_create()

    <?php
    $fmt = datefmt_create( "pt_BR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
        'America/Sao_Paulo', IntlDateFormatter::GREGORIAN  );
    echo "Primeira saída formatada é ".datefmt_format( $fmt , 0)."\n";
    $fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
        'America/Sao_Paulo',IntlDateFormatter::GREGORIAN  );
    echo "Segunda saída formatada é ".datefmt_format( $fmt , 0)."\n";

    $fmt = datefmt_create( "pt_BR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
         'America/Sao_Paulo',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
    echo "Primeira saída formatada com modelo é ".datefmt_format( $fmt , 0)."\n";
    $fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
         'America/Sao_Paulo',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
    echo "Segunda saída formatada com modelo é ".datefmt_format( $fmt , 0)."\n";
    ?>

Exemplo #2 Exemplo OO

    <?php
    $fmt = new IntlDateFormatter( "pt_BR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
        'America/Sao_Paulo',IntlDateFormatter::GREGORIAN  );
    echo "Primeira saída formatada é ".$fmt->format(0)."\n";
    $fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
        'America/Sao_Paulo',IntlDateFormatter::GREGORIAN  );
    echo "Segunda saída formatada é ".$fmt->format(0)."\n";

    $fmt = new IntlDateFormatter( "pt_BR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
         'America/Sao_Paulo',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
    echo "Primeira saída formatada com modelo é ".$fmt->format(0)."\n";
    $fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
          'America/Sao_Paulo',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
    echo "Segunda saída formatada com modelo é ".$fmt->format(0)."\n";
    ?>

Exemplo #3 Exemplo de manipulação de localidade inválida

    <?php
    try {
        $fmt = new IntlDateFormatter(
            'invalid_locale',
            IntlDateFormatter::FULL,
            IntlDateFormatter::FULL,
            'dunno',
            IntlDateFormatter::GREGORIAN,
        );
    } catch (\Error $e) {
        // ...
    }
    ?>

O exemplo acima produzirá:

    Primeira saída formatada é quarta-feira, 31 de dezembro de 1969 21:00:00 Horário Padrão de Brasília
    Segunda saída formatada é Mittwoch, 31. Dezember 1969 um 21:00:00 Brasília-Normalzeit
    Primeira saída formatada com modelo é 12/31/1969
    Segunda saída formatada com modelo é 12/31/1969

### Veja Também

- datefmt_format() - Formata data/horário como uma string
- datefmt_parse() - Interpreta uma string para uma valor de timestamp
- datefmt_get_error_code() - Obtém o código de erro da última operação
- datefmt_get_error_message() - Obtém a mensagem de erro da última operação

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