(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 形式の文字列 |
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] => -9223372036854775808 [time] => -292277022657-01-27T08:29:52+0000 [offset] => 3600 [isdst] => 1 [abbr] => BST ) [1] => Array ( [ts] => -1691964000 [time] => 1916-05-21T02:00:00+0000 [offset] => 3600 [isdst] => 1 [abbr] => BST ) [2] => Array ( [ts] => -1680472800 [time] => 1916-10-01T02:00:00+0000 [offset] => 0 [isdst] => [abbr] => GMT ) )
例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] => 1654184161 [time] => 2022-06-02T15:36:01+0000 [offset] => 3600 [isdst] => 1 [abbr] => BST ) [1] => Array ( [ts] => 1667091600 [time] => 2022-10-30T01:00:00+0000 [offset] => 0 [isdst] => [abbr] => GMT ) [2] => Array ( [ts] => 1679792400 [time] => 2023-03-26T01:00:00+0000 [offset] => 3600 [isdst] => 1 [abbr] => BST ) )