PHP 8.6.0 Beta 1 is available for testing

DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::__construct -- timezone_openСоздаёт новый объект DateTimeZone

Описание

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

public function DateTimeZone::__construct(string $timezone)

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

function timezone_open (string $timezone): DateTimeZone |false

Метод создаёт новый объект DateTimeZone.

Объект DateTimeZone поддерживает три типа представления часового пояса: тип 1 — смещение относительно времени UTC, тип 2 — аббревиатура часового пояса и тип 3идентификатор часового пояса, которые публикуются в базе данных часовых поясов организации IANA.

Объект DateTimeZone прикрепляют к объектам DateTime и DateTimeImmutable для форматирования времени в заданном часовом поясе.

Список параметров

timezone

Поддерживаемое название часового пояса, значение смещения в формате +0200 или аббревиатура часового пояса наподобие BST.

Возвращаемые значения

Метод возвращает объект DateTimeZone , если выполнился успешно. Процедурный стиль возвращает false , если возникла ошибка.

Ошибки

При передаче недопустимого часового пояса метод выбрасывает исключение DateInvalidTimeZoneException . До PHP 8.3 вместо этого выбрасывалось исключение Exception .

Список изменений

Версия Описание
8.3.0 При передаче недопустимых значений часового пояса вместо общего исключения Exception метод теперь выбрасывает исключение DateInvalidTimeZoneException .

Примеры

Пример #1 Пример создания и прикрепления часового пояса DateTimeZone к объекту даты и времени DateTimeImmutable

<?php
$d = new DateTimeImmutable("2022-06-02 15:44:48 UTC");
$timezones = ['Europe/London', 'GMT+04:45', '-06:00', 'CEST'];
foreach ($timezones as $tz) {
 $tzo = new DateTimeZone($tz);
 $local = $d->setTimezone($tzo);
 echo $local->format(DateTimeInterface::RFC2822 . ' — e') . "\n";
}

Результат выполнения приведённого примера:

2022年6月02日 16:44:48 +0100 — Europe/London
2022年6月02日 20:29:48 +0445 — +04:45
2022年6月02日 09:44:48 -0600 — -06:00
2022年6月02日 17:44:48 +0200 — CEST

Пример #2 Пример перехвата ошибок при создании объекта DateTimeZone

<?php
// Обработка ошибок путём перехвата исключений
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');
foreach ($timezones as $tz) {
 try {
 $mars = new DateTimeZone($tz);
 echo $mars->getName() . "\n";
 } catch(Exception $e) {
 echo $e->getMessage() . "\n";
 }
}

Результат выполнения приведённого примера:

Europe/London
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

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

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

AltStyle によって変換されたページ (->オリジナル) /