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

publicIntlDateFormatter::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ãoDescrição
5.5.0/PECL 3.0.0 Tornou-se possível passar um objeto IntlCalendar.

Exemplos

Exemplo #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);
?>

Exemplo #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

Exemplo #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";


$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

To Top