📅  最后修改于: 2023-12-03 15:33:35.263000             🧑  作者: Mango
timezone_transitions_get()
函数用于获取一个时区所有的转换规则列表,返回一个数组。该函数可以用来获取某个时区的历史转换规则,比如在什么时间改变了时区规则,在哪个时间使用了夏令时等等。
该函数是一个内置的时区函数,仅适用于PHP 5.2.0及以上版本。
timezone_transitions_get ( DateTimeZone $object [, int $timestamp_begin, int $timestamp_end ] ) : array
参数说明:
object
:必需参数。一个 DateTimeZone
对象,表示要获取规则的时区。timestamp_begin
:可选参数。一个时间戳,表示要返回规则的开始时间。默认为 0
,即从 Unix 纪元开始。timestamp_end
:可选参数。一个时间戳,表示要返回规则的结束时间。默认为 time()
,即当前时间。该函数返回一个数组,表示指定时区的转换规则。
数组包含了多个 DateTimeTransition
对象,每个对象表示一个特定的转换规则。DateTimeTransition
对象包含以下属性:
ts
:转换发生的时间戳。time
:转换发生时的秒数。isdst
:该转换时是否处于夏令时。abbr
:该转换时使用的缩写。下面是 DateTimeTransition
对象的示例:
array (
'ts' => 946684800,
'time' => -18000,
'offset' => -21600,
'isdst' => false,
'abbr' => 'CST',
)
下面是获取默认时区转换规则的示例:
$transitions = timezone_transitions_get();
foreach ($transitions as $transition) {
echo "Transition at " . date('Y-m-d H:i:s', $transition['ts']) . "<br>";
}
下面是获取某个时区部分时间段的转换规则示例:
$timezone = new DateTimeZone('Asia/Shanghai');
$timestamp_begin = strtotime('2010-01-01 00:00:00');
$timestamp_end = strtotime('2020-01-01 00:00:00');
$transitions = timezone_transitions_get($timezone, $timestamp_begin, $timestamp_end);
foreach ($transitions as $transition) {
echo "Transition at " . date('Y-m-d H:i:s', $transition['ts']) . "<br>";
}