(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::getTransitions -- timezone_transitions_get — タイムゾーンの変遷を返す
オブジェクト指向型
$timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false手続き型
$object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false
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
)
)