update page now
Laravel Live Japan

DateTimeZone::__construct

timezone_open

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

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

Описание

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

public DateTimeZone::__construct(string $timezone)

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

Метод создаёт новый объект 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";
}

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

Thu, 02 Jun 2022 16:44:48 +0100 — Europe/London
Thu, 02 Jun 2022 20:29:48 +0445 — +04:45
Thu, 02 Jun 2022 09:44:48 -0600 — -06:00
Thu, 02 Jun 2022 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)

Добавить

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

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