函数名: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 偏移量。可以根据需要自定义开始时间戳和结束时间戳来获取不同时间范围内的转换信息。