DateTimeZone::getTransitions

timezone_transitions_get

タイムゾーンの変遷を返す

説明

オブジェクト指向型

public arrayfalse DateTimeZone::getTransitions(int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX)

手続き型

arrayfalse timezone_transitions_get(DateTimeZone $object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX)

パラメータ

object

手続き型のみ: timezone_open が返す DateTimeZone オブジェクト

timestampBegin

開始時のタイムスタンプ。

timestampEnd

終了時のタイムスタンプ。

戻り値

成功した場合にタイムゾーンの遷移を表す、数値インデックスの配列を返します。 失敗した場合に false を返します。 DateTimeZone オブジェクト の type 1 (UTC オフセット) と、type 2 (タイムゾーンの省略形) の場合は、 タイムゾーンの遷移情報は含まれません。 その場合にこのメソッドをコールしても false を返します。

timestampBegin を指定すると、 返される配列の最初のエントリに timestampBegin の時点における遷移の情報が含まれるようになります。

タイムゾーンの遷移を表す配列の構造
キー 説明
ts int Unixタイムスタンプ
time string DateTimeInterface::ISO8601_EXPANDED (PHP 8.2 以降) または、DateTimeInterface::ISO8601 (PHP 8.1 以前) 形式の文字列
offset int UTC からのオフセット(秒単位)
isdst bool 夏時間が有効かどうか
abbr string タイムゾーンの省略形

例1 timezone_transitions_get の例

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>

上の例の出力は、 たとえば以下のようになります。

Array
(
    [0] => Array
        (
            [ts] => -2147483648
            [time] => 1901-12-13T20:45:52+00:00
            [offset] => -75
            [isdst] =>
            [abbr] => LMT
        )

    [1] => Array
        (
            [ts] => 442304971
            [time] => 1847-12-01T00:01:15+00:00
            [offset] => 0
            [isdst] =>
            [abbr] => GMT
        )

    [2] => Array
        (
            [ts] => -1691964000
            [time] => 1916-05-21T02:00:00+00:00
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

)

例2 timestampBegin を設定して timezone_transitions_get を使う例

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions(time());
print_r(array_slice($transitions, 0, 3));
?>

上の例の出力は、 たとえば以下のようになります。

Array
(
    [0] => Array
        (
            [ts] => 1759058251
            [time] => 2025-09-28T11:17:31+00:00
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [1] => Array
        (
            [ts] => 1761440400
            [time] => 2025-10-26T01:00:00+00:00
            [offset] => 0
            [isdst] => 
            [abbr] => GMT
        )

    [2] => Array
        (
            [ts] => 1774746000
            [time] => 2026-03-29T01:00:00+00:00
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

)