PHP Conference Nagoya 2025

IntlCalendar::setTimeZone

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

IntlCalendar::setTimeZoneУстанавливает часовой пояс, используемый календарём

Описание

Объектно-ориентированный стиль

public IntlCalendar::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool

Процедурный стиль

intlcal_set_time_zone(IntlCalendar $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)

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top