IntlDateFormatter::setCalendar

datefmt_set_calendar

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

IntlDateFormatter::setCalendar -- datefmt_set_calendarDefine o tipo de calendário usado pelo formatador

Descrição

Estilo orientado a objetos

public IntlDateFormatter::setCalendar(IntlCalendar|int|null $calendar): bool

Estilo procedural

datefmt_set_calendar(IntlDateFormatter $formatter, IntlCalendar|int|null $calendar): bool

Define o tipo de calendário usado pelo formatador.

Parâmetros

formatter

O recurso do formatador.

calendar

Pode ser: o tipo de calendário a ser usado (o padrão é IntlDateFormatter::GREGORIAN, que também é usado se null for especificado) ou um objeto IntlCalendar.

Qualquer objeto IntlCalendar passado será clonado; nenhuma modificação será feita no objeto do argumento.

O fuso horário do formatador somente será mantido se um objeto IntlCalendar não for passado, caso contrário o novo fuso horário será o do objeto passado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
PECL intl 3.0.0 Tornou-se possível passar um objeto IntlCalendar.

Exemplos

Example #1 Exemplo de datefmt_set_calendar()

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'O calendário do formatador é: ' . datefmt_get_calendar($fmt), "\n";
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Agora, o calendário do formatador é: ' . datefmt_get_calendar($fmt);
?>

Example #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'O calendário do formatador é: ' . $fmt->getCalendar(), "\n";
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Agora, o calendário do formatador é: ' . $fmt->getCalendar();
?>

O exemplo acima produzirá:

O calendário do formatador é: 1
Agora, o calendário do formatador é: 0

Example #3 Exemplo com argumento IntlCalendar

<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");

echo "antes: ", $formatter->format($time), "\n";

/* note que a localidade do calendário não é usada! */
$formatter->setCalendar(IntlCalendar::createInstance(
               "America/New_York", "pt_BR@calendar=islamic"));

echo "depois:  ", $formatter->format($time), "\n";
?>

O exemplo acima produzirá:

antes: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time
depois:  Saturday, Rabiʻ II 20, 1434 at 7:00:00 PM Eastern Standard Time

Veja Também