IntlDateFormatter
PHP Manual

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendarEstablecer el tipo de calendario usado por el formateador

Descripción

Estilo orientado a objetos

bool IntlDateFormatter::setCalendar ( mixed $which )

Estilo por procedimientos

bool datefmt_set_calendar ( IntlDateFormatter $fmt , mixed $which )

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 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.

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"NULLNULL"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


IntlDateFormatter
PHP Manual