IntlDateFormatter::format

datefmt_format

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

IntlDateFormatter::format -- datefmt_formatFormatea la fecha y la hora como string

Descripción

Estilo orientado a objetos

public IntlDateFormatter::format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Estilo por procedimientos

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 #1 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 #2 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 resultado del ejemplo sería:

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 #3 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 resultado del ejemplo sería:

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

Ver también