(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::createInstance — Создаёт новый объект IntlCalendar
Объектно-ориентированный стиль
$timezone
= null
, ?string $locale
= null
): ?IntlCalendarПроцедурный стиль
$timezone
= null
, ?string $locale
= null
): ?IntlCalendarУчитывая часовой пояс и языковой стандарт, метод создаёт объект IntlCalendar. Этот фабричный метод может возвращать дочерний класс IntlCalendar.
Созданный календарь будет представлять момент времени, в который он был создан, на основе системного времени. Все поля можно очистить, вызвав IntCalendar::clear() без аргументов. Смотрите также IntlGregorianCalendar::__construct().
timezone
Часовой пояс для использования.
Если null
, то будет использован часовой пояс по умолчанию, заданная в
ini-настройки date.timezone либо
с помощью функции date_default_timezone_set() и
возвращённая функцией date_default_timezone_get().
Объект класса IntlTimeZone.
Объект класса DateTimeZone. Его идентификатор будет извлечён и на его основе будет создан объект часового пояса ICU; часовой пояс будет сохранён в базе данных ICU, а не PHP.
Строка, являющаяся корректным идентификатором часового пояса ICU.
Смотрите IntlTimeZone::createTimeZoneIDEnumeration().
"Сырые" смещения, типа "GMT+08:30"
, также поддерживаются.
locale
Используемый языковой стандарт или значение null
для использования
языкового стандарта по умолчанию.
Созданный экземпляр IntlCalendar или null
в случае возникновения ошибки.
Пример #1 Пример использования IntlCalendar::createInstance()
<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'Europe/Madrid');
$cal = IntlCalendar::createInstance();
echo "Без аргументов\n";
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";
echo "Явное указание часового пояса\n";
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT());
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";
echo "Явное указание языкового стандарта (с календарём)\n";
$cal = IntlCalendar::createInstance(NULL, 'es_ES@calendar=persian');
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
Результат выполнения приведённого примера:
Без аргументов string(21) "IntlGregorianCalendar" string(68) "martes 18 de junio de 2013 14:11:02 Hora de verano de Europa Central" Явное указание часового пояса string(21) "IntlGregorianCalendar" string(45) "martes 18 de junio de 2013 12:11:02 GMT+00:00" Явное указание языкового стандарта (с календарём) string(12) "IntlCalendar" string(70) "martes 28 de Khordad de 1392 14:11:02 Hora de verano de Europa Central"