Documentación offline PHP master

IntlDateFormatter::setCalendar

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

IntlDateFormatter::setCalendar

datefmt_set_calendar

Define el tipo de calendario utilizado por el formateador

Descripción#

Estilo orientado a objetos

public IntlDateFormatter::setCalendar(IntlCalendar $calendar): bool
```php

Estilo procedimental

```php
datefmt_set_calendar(IntlDateFormatter $formatter, IntlCalendar $calendar): bool

Configura el calendario o el tipo de calendario a utilizar por el formateador.

Parámetros#

formatter
El recurso de formateador IntlDateFormatter.

calendar
Puede ser: el tipo de calendario a utilizar (por omisión, IntlDateFormatter::GREGORIAN, que también es utilizado si null es especificado) o un objeto IntlCalendar.

Cualquier objeto IntlCalendar pasado será clonado; ninguna modificación será realizada sobre el objeto en argumento.

El desplazamiento horario del formateador solo será conservado si un objeto IntlCalendar no es pasado, de lo contrario, el nuevo desplazamiento horario será el del objeto pasado.

Valores devueltos#

Esta función retorna true en caso de éxito o false si ocurre un error.

Historial de cambios#

Versión Descripción
PECL intl 3.0.0 Se hace posible pasar un objeto IntlCalendar.

Ejemplos#

Ejemplo con 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 'El calendario es ahora: ' . datefmt_get_calendar($fmt);
?>

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 'El calendario es ahora: ' . $fmt->getCalendar();
?>

El ejemplo anterior mostrará:

El calendario del formateador es: 1
El calendario es ahora: 0

Ejemplo con argumentos a 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 la configuración local del calendario no es utilizada! */
$formatter->setCalendar(IntlCalendar::createInstance(
               "America/New_York", "pt_PT@calendar=islamic"));

echo "después:  ", $formatter->format($time), "\n";

El ejemplo anterior mostrará:

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

Véase también#

datefmt_get_calendar, datefmt_get_calendar_object, datefmt_create