(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
IntlDateFormatter::format -- datefmt_format — Formatear el valor fecha/hora como una cadena
Estilo orientado a objetos
Estilo por procedimientos
Formatea el valor del instante como una cadena.
fmt
El recurso del formateador de fechas.
value
El valor a formatear. Puede ser un objeto DateTime, un objeto IntlCalendar, un tipo numeric que representa un número (posiblemente fraccionario) de segundos desde la época o un array en el formato generado por localtime().
Si se proporciona un objeto DateTime o IntlCalendar, su zona horaria no se considera. El objeto será formateado usando la zona horaria configurada del formateador. Si se quiere usar la zona horaria del objeto a formatear, IntlDateFormatter::setTimeZone() debe ser invocado antes con la zona horaria del objeto. Alternativamente, la función estática IntlDateFormatter::formatObject() podría usarse en su lugar.
La cadena formateada o, si ocurrión un error, FALSE
.
Versión | Descripción |
---|---|
5.5.0/PECL 3.0.0 |
Se añadió el soporta para proporcionar objetos IntlCalendar
al parámetro value .
|
5.3.4 |
Se añadió el soporte para proporcionar objetos de la clase DateTime
al parámetro value .
|
Ejemplo #1 Ejemplo de datefmt_format()
<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'La primera salida formateada es ' . datefmt_format($fmt, 0);
$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'La segunda salida formateada es ' . datefmt_format($fmt, 0);
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'La primera salida formateada con patrón es ' . datefmt_format($fmt, 0);
$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'La segunda salida formateada con patrón es ' . 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 'La primera salida formateada es ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'La segunda salida formateada es ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'La primera salida formateada con patrón es ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'La segunda salida formateada con patrón es ' . $fmt->format(0);
?>
El resultado del ejemplo sería:
La primera salida formateada es Wednesday, December 31, 1969 4:00:00 PM PT La segunda salida formateada es miércoles 31 de diciembre de 1969 16H00'00" PST La primera salida formateada con patrón es 12/31/1969 La segunda salida formateada con patrón es 31/12/1969
Ejemplo #3 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); //9th month, Ramadan
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1st day
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);
echo "En este año islámico, el Ramadan empezó/empezará el:\n\t",
$formatter->format($cal), "\n";
//Es la zona hiraria del formateador la que se usa:
$formatter->setTimeZone('Asia/Tokyo');
echo "Después de cambiar la zona horaria:\n\t",
$formatter->format($cal), "\n";
El resultado del ejemplo sería:
En este año islámico, el Ramadan empezó/empezará el: mardi 9 juillet 2013 19:00:00 heure avancée d’Europe centrale Después de cambiar la zona horaria: mercredi 10 juillet 2013 02:00:00 heure normale du Japon