DateTimeZone
在线手册:中文 英文
PHP手册

DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0)

DateTimeZone::getTransitions -- timezone_transitions_getReturns all transitions for the timezone

说明

面向对象风格

public array DateTimeZone::getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )

过程化风格

array timezone_transitions_get ( DateTimeZone $object [, int $timestamp_begin [, int $timestamp_end ]] )

参数

object

仅过程化风格:由 timezone_open() 返回的 DateTimeZone 对象。

timestamp_begin

Begin timestamp.

timestamp_end

End timestamp.

返回值

Returns numerically indexed array containing associative array with all transitions on success 或者在失败时返回 FALSE.

更新日志

版本 说明
5.3.0 The optional timestamp_begin and timestamp_end were added.

范例

Example #1 A timezone_transitions_get() example

<?php
$timezone 
= new DateTimeZone("Europe/London");
$transitions $timezone->getTransitions();
print_r(array_slice($transitions03));
?>

以上例程的输出类似于:

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
        )

)


DateTimeZone
在线手册:中文 英文
PHP手册
PHP手册 - N: Returns all transitions for the timezone

用户评论:

scotts (05-Mar-2010 07:19)

Getting a timezone's offset and other data at a specified point in time (now, for example) using the new PHP5.3 parameters:

<?php
$theTime
= time(); # specific date/time we're checking, in epoch seconds.

$tz = new DateTimeZone('America/Los_Angeles');
$transition = $tz-getTransitions($theTime,$theTime);

# only one array should be returned into $transition. Now get the data:
$offset = $transition[0]['offset'];
$abbr = $transition[0]['abbr'];
?>

Before PHP5.3, you'd have to loop through all of the Transitions up until the current point in time, which would be a very inefficient process.