IntlDateFormatter
PHP Manual

IntlDateFormatter::format

datefmt_format

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

IntlDateFormatter::format -- datefmt_formatFormatear el valor fecha/hora como una cadena

Descripción

Estilo orientado a objetos

public string IntlDateFormatter::format ( mixed $value )

Estilo por procedimientos

string datefmt_format ( IntlDateFormatter $fmt , mixed $value )

Formatea el valor del instante como una cadena.

Parámetros

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.

Valores devueltos

La cadena formateada o, si ocurrión un error, FALSE.

Historial de cambios

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.

Ejemplos

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($fmt0);

$fmt datefmt_create(
    
'de-DE',
    
IntlDateFormatter::FULL,
    
IntlDateFormatter::FULL,
    
'America/Los_Angeles',
    
IntlDateFormatter::GREGORIAN
);
echo 
'La segunda salida formateada es ' datefmt_format($fmt0);

$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($fmt0);

$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($fmt0);
?>

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_MONTH8); //9th month, Ramadan
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH1); //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

Ver también


IntlDateFormatter
PHP Manual