downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

IntlDateFormatter::formatObject> <IntlDateFormatter::create
[edit] Last updated: Fri, 17 May 2013

view this page in

IntlDateFormatter::format

datefmt_format

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

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

Descripción

Estilo orientado a objetos

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 objetos de la clase DateTime, un integer representando un valor de marca de tiempo Unix (segundos transcurridos desde la Época Unix, UTC) o un array en el formato devuelto por localtime().

Valores devueltos

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

Historial de cambios

Versión Descripción
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::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN  );
echo 
"La primera salida formateada es " datefmt_format($fmt0);
$fmt datefmt_create"es-ES"IntlDateFormatter::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN  );
echo 
"La segunda salida formateada es " datefmt_format($fmt0);

$fmt datefmt_create"en_US"IntlDateFormatter::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN"MM/dd/yyyy");
echo 
"La primera salida formateada con patrón es " datefmt_format($fmt0);
$fmt datefmt_create"es-ES"IntlDateFormatter::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN"dd/MM/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"es-ES"IntlDateFormatter::FULLIntlDateFormatter::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"es-ES"IntlDateFormatter::FULLIntlDateFormatter::FULL'America/Los_Angeles'IntlDateFormatter::GREGORIAN"dd/MM/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

Ver también



IntlDateFormatter::formatObject> <IntlDateFormatter::create
[edit] Last updated: Fri, 17 May 2013
 
add a note add a note User Contributed Notes IntlDateFormatter::format - [3 notes]
up
1
con at bartrail dot de
1 year ago
I hope this will save some time for others who have to struggle with different php versions on dev and prod plattform in the future:

when formatting a DateTime object with a *custom pattern*, be sure to use a timestamp to pass at the IntlDateFormatter::format in order to have it working on different php versions:

Example for PHP Version 5.3.5-1ubuntu7.2 (my dev machine):
<?php
$date
= new \DateTime();

$dateFormatter = \IntlDateFormatter::create(
  \
Locale::getDefault(),
  \
IntlDateFormatter::NONE,
  \
IntlDateFormatter::NONE,
  \
date_default_timezone_get(),
  \
IntlDateFormatter::GREGORIAN,
 
'EEEE'
);

var_dump($dateFormatter->format($date)); // string(6) "Monday"
?>

Example for PHP Version 5.3.2-1ubuntu4.9 (the prod server):
<?php
// same formatting as above

var_dump($dateFormatter->format($date)); // bool(false)
?>

When using $dateFormatter->format($date->getTimestamp()), you'll always get the formatted and localized string instead of a false.
up
0
mail dot dennisbecker at gmail dot com
3 months ago
You should know that PHPs IntlDateFormatter class uses ISO date format codes instead of PHPs date() format codes. It is not really clear mentioned from my point of view.

A good list to find ISO codes is available at http://framework.zend.com/manual/1.12/en/zend.date.constants.html#zend.date.constants.selfdefinedformats and such a list should be added here, too.
up
0
alex
3 years ago
It's important to note that a conversion of timezones will be made from the default timezone (date_default_timezone_set()) and the timezone you passed in the constructor (or datefmt_create()).

If you are inserting the dates into your database as UTC time, make sure to set date_default_timezone_set to UTC as well (or any other timezone, but they need to be the same). Once you call ::format, you will get the converted time.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites