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 オブジェクトは、 3つの異なるタイムゾーンルールへのアクセスを提供します。 ひとつは UTC からのオフセット (type 1), もうひとつはタイムゾーンの省略形 (type 2), そして IANA タイムゾーンデータベースで公開されている タイムゾーン名 (type 3) です。

DateTimeZone オブジェクトは、 DateTimeDateTimeImmutable に設定できます。 こうすることで、 ローカルのタイムゾーンとしてカプセル化された、 タイムゾーンを表示させることができます。

パラメータ

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)

関連キーワード:  DateTimeZone, 作成, オブジェクト, timezone, construct, Thu, type, open, datetimezone, 出力