IntlDateFormatter::format

datefmt_format

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

IntlDateFormatter::format -- datefmt_formatFormata data/horário como uma string

Descrição

Estilo orientado a objetos

public IntlDateFormatter::format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Estilo procedural

Formata o valor de data/horário como uma string.

Parâmetros

formatter

O recurso de formatador de data.

datetime

O valor a ser formatado. Pode ser um objeto DateTimeInterface, um objeto IntlCalendar, um valor do tipo numeric representando um número (possivelmente fracionário) de segundos desde a época ou um array no formato da saída de localtime().

Se um objeto DateTime ou IntlCalendar for passado, seu fuso horário não será considerado. O objeto será formatado usando o fuso horário configurado pelo formatador. Se for desejado usar o fuso horário do objeto a ser formatado, IntlDateFormatter::setTimeZone() deve ser chamada antes com o fuso horário do objeto. Alternativamente, a função estática IntlDateFormatter::formatObject() pode ser usada em seu lugar.

Valor Retornado

A string formatada ou, se ocorrer um erro, false.

Registro de Alterações

Versão Descrição
7.1.5 Suporte para fornecer objetos DateTimeInterface ao parâmetro datetime foi adicionado. Anteriormente, somente objetos DateTime eram suportados.
PECL intl 3.0.0 Suporte para fornecer objetos IntlCalendar ao parâmetro datetime foi adicionado.

Exemplos

Example #1 Exemplo de datefmt_format()

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

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Sao_Paulo',
    IntlDateFormatter::GREGORIAN
);
echo 'Segunda saída formatada é ' . datefmt_format($fmt, 0);

$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);

$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);
?>

Example #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";
?>

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

Example #3 Com objeto IntlCalendar

<?php
$tz = reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));
$formatter = IntlDateFormatter::create(
    'fr_FR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    $tz,
    IntlDateFormatter::GREGORIAN
);

$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');
$cal->set(IntlCalendar::FIELD_MONTH, 8); //9º mês, Ramadã
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1º dia
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo "Neste ano islâmico, o Ramadã começou/começará em:\n\t",
        $formatter->format($cal), "\n";

//O fuso horário do formatador será o o utilizado:
$formatter->setTimeZone('Asia/Tokyo');
echo "Após alterar o fuso horário:\n\t",
        $formatter->format($cal), "\n";

O exemplo acima produzirá:

Neste ano islâmico, o Ramadã começou/começará em:
    mardi 9 juillet 2013 19:00:00 heure avancée d’Europe centrale
Após alterar o fuso horário:
    mercredi 10 juillet 2013 02:00:00 heure normale du Japon

Veja Também