PHP Conference Nagoya 2025

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

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

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top