(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::setTimeZone — Устанавливает часовой пояс, используемый календарём
Объектно-ориентированный стиль
Процедурный стиль
$calendar
, IntlTimeZone|DateTimeZone|string|null $timezone
): boolОпределяет новый часовой пояс для календаря. Время, представленное объектом, сохраняется в ущерб значениям поля.
calendar
Экземпляр IntlCalendar.
timezone
Новый часовой пояс, который будет использовать календарь. Его можно указать следующими способами:
Если null
, то будет использован часовой пояс по умолчанию, заданная в
ini-настройки date.timezone либо
с помощью функции date_default_timezone_set() и
возвращённая функцией date_default_timezone_get().
Объект класса IntlTimeZone.
Объект класса DateTimeZone. Его идентификатор будет извлечён и на его основе будет создан объект часового пояса ICU; часовой пояс будет сохранён в базе данных ICU, а не PHP.
Строка, являющаяся корректным идентификатором часового пояса ICU.
Смотрите IntlTimeZone::createTimeZoneIDEnumeration().
"Сырые" смещения, типа "GMT+08:30"
, также поддерживаются.
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Пример #1 Пример использования IntlCalendar::setTimeZone()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');
$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
$cal->setTimeZone(IntlTimeZone::getGMT());
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
$cal->setTimeZone('GMT+03:33');
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";
Результат выполнения приведённого примера:
sábado, 1 de junio de 2013 12:00:00 Hora de verano de Europa occidental (instant 1370084400000) sábado, 1 de junio de 2013 11:00:00 GMT (instant 1370084400000) sábado, 1 de junio de 2013 14:33:00 GMT+03:33 (instant 1370084400000)