Documentación offline PHP master

IntlDateFormatter::format

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

En esta página

IntlDateFormatter::format

datefmt_format

Formatea la fecha y la hora como string

Descripción#

Estilo orientado a objetos

public IntlDateFormatter::format(IntlCalendar $datetime): string
```php

Estilo procedimental

```php
datefmt_format(IntlDateFormatter $formatter, IntlCalendar $datetime): string

Formatea la hora como string.

Parámetros#

formatter
El recurso de formateador IntlDateFormatter.

datetime
El valor a formatear. Puede ser un objeto DateTimeInterface, un objeto IntlCalendar, un tipo numeric representando un (puede ser fraccionado) número de segundos desde la época o un array en el formato de salida de la función localtime.

Si se pasa un objeto DateTime o un objeto IntlCalendar, su zona horaria no será considerada. El objeto deberá ser formateado utilizando la zona horaria configurada para este formateador. Si se desea utilizar la zona horaria del objeto a formatear, el método IntlDateFormatter::setTimeZone deberá ser llamado antes de la zona horaria del objeto. También puede utilizarse el método IntlDateFormatter::formatObject para obtener el mismo resultado.

Valores devueltos#

El string formateado, o, si ocurre un error, false.

Historial de cambios#

Versión Descripción
7.1.5 Se añadió el soporte para proporcionar un objeto genérico DateTimeInterface para el argumento datetime. Anteriormente, solo los objetos válidos DateTime eran soportados.
PECL intl 3.0.0 Ahora es posible pasar un objeto IntlCalendar como valor del argumento datetime.

Ejemplos#

Ejemplo con datefmt_format

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'El primer formato mostrado es ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'El segundo formato mostrado es ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'El primer formato es mostrado con el patrón ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo "El segundo formato es mostrado con el patrón " . datefmt_format($fmt, 0);
?>

Ejemplo orientado a objetos

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'El primer formato mostrado es ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'El segundo formato mostrado es ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'El primer formato es mostrado con el patrón ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'El segundo formato es mostrado con el patrón ' . $fmt->format(0);
?>

El ejemplo anterior mostrará:

El primer formato mostrado es Wednesday, December 31, 1969 4:00:00 PM PT
El segundo formato mostrado es Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
El primer formato es mostrado con el patrón : 12/31/1969
El segundo formato es mostrado con el patrón : 12/31/1969

Ejemplo con un objeto IntlCalendar

<?php
$tz = reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));
$formatter = IntlDateFormatter::create(
    'fr_FR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    $tz,
    IntlDateFormatter::GREGORIAN
);

$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');
$cal->set(IntlCalendar::FIELD_MONTH, 8); //9º mes, Ramadán
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1º día
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo "En el año Islámico, el Ramadán comienza el :\n\t",
        $formatter->format($cal), "\n";

//Es la zona horaria del formateador la que se utiliza aquí :
$formatter->setTimeZone('Asia/Tokyo');
echo "Después de modificar la zona horaria :\n\t",
        $formatter->format($cal), "\n";

El ejemplo anterior mostrará:

En el año Islámico, el Ramadán comienza el :
    martes 9 julio 2013 19:00:00 hora avanzada de Europa central
Después de modificar la zona horaria :
    miércoles 10 julio 2013 02:00:00 hora normal de Japón

Véase también#

datefmt_create, datefmt_parse, datefmt_get_error_code, datefmt_get_error_message, datefmt_format_object