(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
IntlDateFormatter::setCalendar -- datefmt_set_calendar — Establecer el tipo de calendario usado por el formateador
Estilo orientado a objetos
Estilo por procedimientos
Establece el calendario o el tipo de calendario usado por el formateador.
fmt
El recurso del formatedor
which
Puede ser: el tipo de
calendario a usar (el predeterminado es
IntlDateFormatter::GREGORIAN
, el cual también se usa si
se especifica NULL
) o un
objeto IntlCalendar.
Cualquier objeto IntlCalendar pasado será clonado; no se realizará ninguna modificación al objeto del argumento.
La zona horaria del formateador se mantendrá únicamente si no se pasa un objeto IntlCalendar, de otro modo la nuevo zona horaria será aquella del objeto pasado.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Versión | Descripción |
---|---|
5.5.0/PECL 3.0.0 | Ahora es posible pasar un objeto IntlCalendar. |
Ejemplo #1 Ejemplo de datefmt_set_calendar()
<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'El calendario del formateador es : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt,IntlDateFormatter::TRADITIONAL);
echo 'Ahora el calendario del formateador es : ' . datefmt_get_calendar($fmt);
?>
Ejemplo #2 Ejemplo orientado a objetos
<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'El calendario del formateador es : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Ahora el calendario del formateador es : ' . $fmt->getCalendar();
?>
El resultado del ejemplo sería:
El calendario del formateador es : 1 Ahora el calendario del formateador es : 0
Ejemplo #3 Ejemplo con el 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 that the calendar's locale is not used! */
$formatter->setCalendar(IntlCalendar::createInstance(
"America/New_York", "pt_PT@calendar=islamic"));
echo "después: ", $formatter->format($time), "\n";
El resultado del ejemplo sería:
antes: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time después: Saturday, Rabiʻ II 20, 1434 at 7:00:00 PM Eastern Standard Time