(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::setCalendar -- datefmt_set_calendar — Define o tipo de calendário usado pelo formatador
Estilo orientado a objetos
Estilo procedural
Define o tipo de calendário usado pelo formatador.
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.
Retorna true
em caso de sucesso ou false
em caso de falha.
Versão | Descrição |
---|---|
5.5.0/PECL 3.0.0 | Tornou-se possível passar um objeto IntlCalendar. |
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";
/* 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