PHP 5.6.0beta1 released

IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

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

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__constructCrear un formateador de fechas

Descripción

Estilo orientado a objetos

public static IntlDateFormatter IntlDateFormatter::create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = '' ]]] )

Estilo orientado a objetos (constructor)

public IntlDateFormatter::__construct ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = '' ]]] )

Estilo por procedimientos

IntlDateFormatter datefmt_create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = '' ]]] )

Crear un formateador de fechas.

Parámetros

locale

Configuración regional a usar al formatear o procesar o NULL para usar el valor especificado en el ajuste ini intl.default_locale.

datetype

Tipo de fecha a usar (none, short, medium, long, full). Es una de las contantes de IntlDateFormatter. También puede ser NULL, en cuyo caso se usará el tipo de fecha predeterminado de ICU.

timetype

Tipo de hora a usar (none, short, medium, long, full). Es una de las contantes de IntlDateFormatter. También puede ser NULL, en cuyo caso se usará el tipo de hora predeterminada de ICU.

timezone

ID de la zona horaria. El predeterminado (y el usado si se proporciona NULL) es el devuelto por date_default_timezone_get() o, si es aplicable, aquel del objeto IntlCalendar pasado para el parámetro calendar. Este ID debe ser un identificador válido en la base de datos de ICU o un ID que represente un índice explícito, como GMT-05:30.

También puede ser un objeto IntlTimeZone o DateTimeZone.

calendar

Calendario a usar al formatear o procesar. El valor predeteminado es NULL, el cual corresponde a IntlDateFormatter::GREGORIAN. También puede ser una de las constantes de calendario de IntlDateFormatter o un IntlCalendar. Cualquier objeto IntlCalendar pasado será clonado; no será cambiado por IntlDateFormatter. Esto determinará el tipo de calendario usado (gregoriano, islámico, persa, etc.) y, si se proporciona NULL para el parámetro timezone, también la zona horaria usada.

pattern

Patrón opcional a usar al formatear o procesar. Los posibles patrones están documentados en » http://userguide.icu-project.org/formatparse/datetime.

Valores devueltos

El IntlDateFormatter creado o FALSE en caso de error.

Historial de cambios

Versión Descripción
5.5.0/PECL 3.0.0

Se permite un objeto IntlCalendar para calendar.

Los objetos de tipo IntlTimeZone y DateTimeZone están permitidos para timezone.

Los identificadores de zonas horaria válidos (incluyendo cadena vacías) ya no están permitidos para timezone.

Si se proporciona NULL para timezone, el identificador de la zona horaria dado por date_default_timezone_get() se usará en lugar del predeterminado de ICU.

Ejemplos

Ejemplo #1 Ejemplo de datefmt_create()

<?php
$fmt 
datefmt_create"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::FULL,
    
'America/Los_Angeles'IntlDateFormatter::GREGORIAN );
echo 
"La primera salida formateada es ".datefmt_format$fmt 0);
$fmt datefmt_create"es-ES"IntlDateFormatter::FULLIntlDateFormatter::FULL,
    
'America/Los_Angeles'IntlDateFormatter::GREGORIAN );
echo 
"La segunda salida formateada es ".datefmt_format$fmt 0);

$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$fmt 0);
$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$fmt 0);
?>

Ejemplo #2 Ejemplo orientado a objetos

<?php
$fmt 
= new IntlDateFormatter"en_US" ,IntlDateFormatter::FULLIntlDateFormatter::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::FULLIntlDateFormatter::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

add a note add a note

User Contributed Notes 2 notes

up
1
daniel dot rhodes at warpasylum dot co dot uk
2 years ago
It should be noted that the locale string passed into IntlDateFormatter's constructor supports UCA keywords. So you can, for example, do things like this to output the year as a Japanese era year:

<?php
$now
= new DateTime();    //DateTime is a core PHP class as of version 5.2.0

$formatter = new IntlDateFormatter('ja_JP', IntlDateFormatter::FULL,
       
IntlDateFormatter::FULL, 'Asia/Tokyo', IntlDateFormatter::GREGORIAN);

echo
'It is now: "' . $formatter->format($now) . '" in Tokyo' . "\n";
//above gives [It is now: "2011年8月19日金曜日 23時32分27秒JST" in Tokyo]

$formatter = new IntlDateFormatter('ja_JP@calendar=japanese', IntlDateFormatter::FULL,
       
IntlDateFormatter::FULL, 'Asia/Tokyo', IntlDateFormatter::TRADITIONAL);

echo
'It is now: "' . $formatter->format($now) . '" in Tokyo' . "\n";
//above gives [It is now: "平成23年8月19日金曜日 23時32分27秒JST" in Tokyo]
?>
up
0
mikko dot rantalainen at peda dot net
2 years ago
Documentation says "timezone: Time zone ID, default is system default."

The "system default" really means only the "TZ" environment variable on Unix/Linux systems. It does not mean PHP ini setting or value set via date_default_timezone_set() or the OS default time zone in file "/etc/timezone".
To Top