# 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::__construct — Crée un formateur de date

### Description

Style orienté objet

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

Style orienté objet (constructeur)

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`
)

Style procédural

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

Crée un formateur de date.

### Liste de paramètres

`locale`

  La locale à utiliser pour formater et analyser ou `null` pour utiliser la valeur spécifiée dans la configuration ini intl.default_locale.

`dateType`

  Le type de date à utiliser (`none`, `short`, `medium`, `long`, `full`). C'est l'une des constantes IntlDateFormatter.

`timeType`

  Format de l'heure déterminé par l'une des constantes d'IntlDateFormatter. La valeur par défaut est `IntlDateFormatter::FULL`.

`timezone`

  L'identifiant du fuseau horaire. Par défaut, (ce sera également la valeur par défaut qui sera utilisée si `null` est fourni) ce sera celui retourné par la fonction date_default_timezone_get() ou, si applicable, celui de l'objet IntlCalendar passé au paramètre `calendar`.Cet identifiant doit être un identifiant valide dans la base de données ICU, ou un identifiant représentant une possible explicite, comme `GMT-05:30`.

  Ce paramètre peut aussi être un objet IntlTimeZone ou un objet DateTimeZone.

`calendar`

  Calendrier à utiliser pour le formatage ou l'analyse. La valeur par défaut est `null`, ce qui correspond à la constante `IntlDateFormatter::GREGORIAN`. Peut être une des constantes de calendrier IntlDateFormatter ou un IntlCalendar. Tout objet IntlCalendar passé sera clôné ; il ne sera pas modifié par IntlDateFormatter. Il déterminera le type de calendrier utilisé (grégorien, islamique, persien, etc.) et si `null` est fourni dans le paramètre `timezone`, le fuseau horaire sera également utilisé.

`pattern`

  Le modèle à utiliser pour le formatage ou l'analyse. Les modèles disponibles sont documentés sur » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

### Valeurs de retour

L'objet IntlDateFormatter créé, ou `null` si une erreur survient.

### Erreurs / Exceptions

Une ValueError est levée si `locale` est invalide.

### Historique

Version | Description
--- | ---
8.4.0 | Une ValueError est levée si `locale` est invalide.
8.1.0 | Les paramètres `dateType` et `timeType` sont désormais facultatifs.

### Exemples

Exemple #1 Exemple avec datefmt_create(), procédural

`<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles', IntlDateFormatter::GREGORIAN );
echo "Le premier format affiché est ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Le deuxième format affiché est ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Le premier format est affiché avec le modèle : ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Le deuxième format est affiché avec le modèle : ".datefmt_format( $fmt , 0);
?>`

Exemple #2 Exemple avec datefmt_create(), POO

`<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Le premier format affiché est ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Le deuxième format affiché est ".$fmt->format(0);
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Le premier format est affiché avec le modèle : ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Le deuxième format est affiché avec le modèle : ".$fmt->format(0);
?>`

Exemple #3 Exemple de gestion de locale invalide

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

L'exemple ci-dessus va afficher :

    Le premier format affiché est Wednesday, December 31, 1969 4:00:00 PM PT
    Le deuxième format affiché est Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
    Le premier format est affiché avec le modèle : 12/31/1969
    Le deuxième format est affiché avec le modèle : 12/31/1969

### Voir aussi

- datefmt_format() - Formate la date et l'heure sous forme de chaîne
- datefmt_parse() - Analyse une chaîne vers un timestamp
- datefmt_get_error_code() - Lit le code d'erreur de la dernière opération
- datefmt_get_error_message() - Lit le dernier message d'erreur