PHP 8.0.26 Released!

DateTimeZone::__construct

timezone_open

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

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

Описание

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

public DateTimeZone::__construct(string $timezone)

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

timezone_open(string $timezone): DateTimeZone|false

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

Объект DateTimeZone предоставляет доступ к трём различным типам правил временных зон: Смещение UTC (тип 1), сокращение часового пояса (тип 2) и идентификаторы часовых поясов, опубликованные в базе данных часовых поясов IANA (тип 3).

Объект DateTimeZone может быть присоединён к объектам DateTime и DateTimeImmutable, чтобы иметь возможность отображать часовой пояс, заключённый в этих объектах в локальном часовом поясе.

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

timezone

Одно из поддерживаемых имён часовых поясов или значение смещения (+0200) или аббревиатура часового пояса (BST).

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

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

Ошибки

Метод выбрасывает исключение Exception, если указанный часовой пояс не распознан как допустимый.

Примеры

Пример #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);
    } catch(
Exception $e) {
        echo 
$e->getMessage() . '<br />';
    }
}
?>

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

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top