# IntlCalendar::createInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::createInstance — Crée un nouvel objet IntlCalendar

### Description

Style orienté objet

public static IntlCalendar::createInstance(IntlTimeZone|DateTimeZone|string|null `$timezone` = `null`, ?string `$locale` = `null`): ?IntlCalendar

Style procédural

intlcal_create_instance(IntlTimeZone|DateTimeZone|string|null `$timezone` = `null`, ?string `$locale` = `null`): ?IntlCalendar

En fournissant un fuseau horaire, et une locale, cette méthode crée un objet IntlCalendar. Cette méthode factorielle peut retourner une sous-classe de la classe IntlCalendar.

Le calendrier créé représentera l'instance du temps au moment où il a été créé, basé suivant le temps du système. Les champs peuvent être vidés avec la méthode IntCalendar::clear() sans argument. Voir aussi la méthode IntlGregorianCalendar::__construct().

### Liste de paramètres

`timezone`

  Le fuseau horaire à utiliser.

  - `null`, dans quel cas le fuseau horaire par défaut sera utilisé, comme spécifié dans le paramètre de configuration du fichier ini date.timezone ou par la fonction date_default_timezone_set() et comme retourné par date_default_timezone_get().

  - Un IntlTimeZone, qui sera utilisé directement.

  - Un DateTimeZone. Son identifiant sera extrait et un objet de fuseau horaire ICU sera créé; le fuseau horaire sera soutenu par la base de données de l'ICU, et non par PHP.

  - Une chaîne de caractères, qui devrait être un identifiant de fuseau horaire ICU valide. Voir IntlTimeZone::createTimeZoneIDEnumeration(). Les décalages bruts tels que `"GMT+08:30"` sont aussi acceptés.

`locale`

  Une locale à utiliser, ou `null` pour utiliser la locale par défaut.

### Valeurs de retour

L'instance de l'objet IntlCalendar créé, ou `null` si une erreur survient.

### Exemples

Exemple #1 Exemple avec IntlCalendar::createInstance()

`<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'Europe/Madrid');
$cal = IntlCalendar::createInstance();
echo "Aucun argument\n";
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";
echo "Fuseau horaire explicite\n";
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT());
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";
echo "Locale explicite (avec le calendrier)\n";
$cal = IntlCalendar::createInstance(NULL, 'es_ES@calendar=persian');
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));`

L'exemple ci-dessus va afficher :

    Aucun argument
    string(21) "IntlGregorianCalendar"
    string(68) "martes 18 de junio de 2013 14:11:02 Hora de verano de Europa Central"

    Fuseau horaire explicite
    string(21) "IntlGregorianCalendar"
    string(45) "martes 18 de junio de 2013 12:11:02 GMT+00:00"

    Locale explicite (avec le calendrier)
    string(12) "IntlCalendar"
    string(70) "martes 28 de Khordad de 1392 14:11:02 Hora de verano de Europa Central"

### Voir aussi

- IntlGregorianCalendar::__construct() - Créer la classe du calendrier grégorien