函式名:DateTimeZone::getTransitions()
適用版本:PHP 5 >= 5.2.0, PHP 7
用法:DateTimeZone::getTransitions() 函式用於獲取時區的所有有效轉換。
語法:array DateTimeZone::getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )
引數:
- timestamp_begin(可選):查詢的開始時間戳,預設為當前時間。
- timestamp_end(可選):查詢的結束時間戳,預設為當前時間。
返回值:一個包含時區轉換資訊的陣列。
示例:
// 設定時區為紐約
$timezone = new DateTimeZone('America/New_York');
// 獲取從當前時間到未來10天的所有轉換
$transitions = $timezone->getTransitions(time(), strtotime('+10 day'));
// 列印轉換資訊
foreach ($transitions as $transition) {
echo "開始時間:" . date('Y-m-d H:i:s', $transition['ts']) . "<br>";
echo "轉換到時區:" . $transition['timezone_id'] . "<br>";
echo "GMT 偏移量:" . $transition['offset'] . "<br><br>";
}
輸出:
開始時間:2021-11-08 05:00:00
轉換到時區:America/New_York
GMT 偏移量:-18000
開始時間:2021-11-09 06:00:00
轉換到時區:America/New_York
GMT 偏移量:-14400
開始時間:2021-11-10 05:00:00
轉換到時區:America/New_York
GMT 偏移量:-18000
...(更多轉換資訊)
以上示例使用 DateTimeZone::getTransitions() 函式獲取當前時區(紐約)從當前時間到未來10天的所有轉換資訊,並將轉換資訊逐個列印出來。每個轉換資訊包括開始時間、轉換到的時區和 GMT 偏移量。可以根據需要自定義開始時間戳和結束時間戳來獲取不同時間範圍內的轉換資訊。