IntlDateFormatter::setCalendar
datefmt_set_calendar
(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
IntlDateFormatter::setCalendar -- datefmt_set_calendar — Establecer el tipo de calendario usado por el formateador
Descripción
Estilo orientado a objetos
Estilo por procedimientos
Establece el calendario o el tipo de calendario usado por el formateador.
Parámetros
-
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 especificaNULL) 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.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.5.0/PECL 3.0.0 | Ahora es posible pasar un objeto IntlCalendar. |
Ejemplos
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
Ver también
- datefmt_get_calendar() - Obtener el tipo de calendario usado por el objeto IntlDateFormatter
- datefmt_get_calendar_object() - Obtener una copia del objeto calendario del formateador
- datefmt_create() - Crear un formateador de fechas