IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

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

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__constructCrea un formateador de fecha

Descripción

Estilo orientado a objetos

public static IntlDateFormatter::create(
    ?string $locale,
    int $dateType = IntlDateFormatter::FULL,
    int $timeType = IntlDateFormatter::FULL,
    IntlTimeZone|DateTimeZone|string|null $timezone = null,
    IntlCalendar|int|null $calendar = null,
    ?string $pattern = null
): ?IntlDateFormatter

Estilo orientado a objetos (constructor)

public IntlDateFormatter::__construct(
    ?string $locale,
    int $dateType = IntlDateFormatter::FULL,
    int $timeType = IntlDateFormatter::FULL,
    IntlTimeZone|DateTimeZone|string|null $timezone = null,
    IntlCalendar|int|null $calendar = null,
    ?string $pattern = null
)

Estilo por procedimientos

datefmt_create(
    ?string $locale,
    int $dateType = IntlDateFormatter::FULL,
    int $timeType = IntlDateFormatter::FULL,
    IntlTimeZone|DateTimeZone|string|null $timezone = null,
    IntlCalendar|int|null $calendar = null,
    ?string $pattern = null
): ?IntlDateFormatter

Crea un formateador de fecha.

Parámetros

locale

La configuración local a utilizar para formatear y analizar o null para utilizar el valor especificado en la configuración ini intl.default_locale.

dateType

El tipo de fecha a utilizar (none, short, medium, long, full). Es una de las constantes IntlDateFormatter.

timeType

Formato de hora determinado por una de las constantes de IntlDateFormatter. El valor por omisión es IntlDateFormatter::FULL.

timezone

El identificador de la zona horaria. Por omisión, (esto también será el valor por omisión que se utilizará si se proporciona null) será el devuelto por la función date_default_timezone_get() o, si es aplicable, el de objeto IntlCalendar pasado al argumento calendar. Este identificador debe ser un identificador válido en la base de datos ICU, o un identificador que represente una zona horaria explícita, como GMT-05:30.

Este argumento también puede ser un objeto IntlTimeZone o un objeto DateTimeZone.

calendar

Calendario a utilizar para el formato o el análisis. El valor por omisión es null, lo que corresponde a la constante IntlDateFormatter::GREGORIAN. Puede ser una de las constantes de calendario IntlDateFormatter o un IntlCalendar. Cualquier objeto IntlCalendar pasado será clonado; no será modificado por IntlDateFormatter. Determinará el tipo de calendario utilizado (gregoriano, islámico, persa, etc.) y si null es proporcionado en el argumento timezone, la zona horaria también será utilizada.

pattern

El patrón a utilizar para el formato o el análisis. Los patrones disponibles están documentados en » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

Valores devueltos

El objeto IntlDateFormatter creado, o null si ocurre un error.

Errores/Excepciones

Se lanza una ValueError si locale es inválido.

Historial de cambios

Versión Descripción
8.4.0 Se lanza una ValueError si locale es inválido.
8.1.0

Los argumentos dateType y timeType ahora son opcionales.

Ejemplos

Ejemplo #1 Ejemplo con datefmt_create(), procedimental

<?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 se muestra 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 se muestra con el patrón: ".datefmt_format( $fmt , 0);
?>

Ejemplo #2 Ejemplo con datefmt_create(), POO

<?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 se muestra 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 se muestra con el patrón: ".$fmt->format(0);
?>

Ejemplo #3 Ejemplo de manejo de configuración local inválida

<?php
try {
$fmt = new IntlDateFormatter(
'locale_invalido',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'je_ne_sais_pas',
IntlDateFormatter::GREGORIAN,
);
} catch (
\Error $e) {
// ...
}
?>

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 se muestra con el patrón: 12/31/1969
El segundo formato se muestra con el patrón: 12/31/1969

Ver también