(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
。包裝類型 1(UTC 偏移量)和類型 2(縮寫)的 DateTimeZone 物件不包含任何轉換,對其調用此方法將返回 false
。
如果給定了 timestampBegin
,則返回陣列中的第一個條目將包含 timestampBegin
時間的轉換元素。
鍵值 | 類型 | 說明 |
---|---|---|
ts |
int | Unix 時間戳記 |
time |
string | DateTimeInterface::ISO8601_EXPANDED (PHP 8.2 及更高版本),或 DateTimeInterface::ISO8601 (PHP 8.1 及更低版本) 時間字串 |
offset |
int | int |
UTC 偏移量(以秒為單位) |
isdst | bool |
日光節約時間是否啟用 |
string | abbr |
時區縮寫
範例
範例 #1 timezone_transitions_get() 範例
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 ) )
<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>
<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions(time());
print_r(array_slice($transitions, 0, 3));
?>
範例 #1 timezone_transitions_get() 範例
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 ) )