(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)
IntlCalendar::setTimeZone — Set the timezone used by this calendar
Объектно-ориентированный стиль
Процедурный стиль
Defines a new timezone for this calendar. The time represented by the object is preserved to the detriment of the field values.
cal
The IntlCalendar resource.
timeZone
The new timezone to be used by this calendar. It can be specified in the following ways:
Если NULL
, то будет использована временная зона по умолчанию, заданная в
ini-настроке date.timezone либо
с помощью функции date_default_timezone_set() и
возвращенная функцией date_default_timezone_get().
Объект класса IntlTimeZone.
Объект класса DateTimeZone. Его идентификатор будет извлечен и на его основе будет создан объект временной зоны ICU; временная зона будет сохранена в базе данных ICU, а не PHP.
Строка, являющаяся корректным идентификатором временной зоны ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.
Returns TRUE
on success and FALSE
on failure.
Пример #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)