Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取UTC偏移量在特定时区发生变化时的日期_Php_Date_Datetime_Timezone - Fatal编程技术网

Php 获取UTC偏移量在特定时区发生变化时的日期

Php 获取UTC偏移量在特定时区发生变化时的日期,php,date,datetime,timezone,Php,Date,Datetime,Timezone,PHP中是否有函数可以在时区UTC偏移量发生变化时获取日期?例如: $date1 = new DateTime('27.03.2016 03:00:00', new DateTimeZone('Europe/Warsaw') ); echo $date1->getOffset(); 它返回7200 这是: $date2 = new DateTime('27.03.2016 01:00:00', new DateTimeZone('Europe/Warsaw') ); echo $date

PHP中是否有函数可以在时区UTC偏移量发生变化时获取日期?例如:

$date1 = new DateTime('27.03.2016 03:00:00', new DateTimeZone('Europe/Warsaw') );
echo $date1->getOffset();
它返回7200

这是:

$date2 = new DateTime('27.03.2016 01:00:00', new DateTimeZone('Europe/Warsaw') );
echo $date2->getOffset();
返回3600。 通过运行此命令,我知道UTC在特定日期的偏移量,但我不知道UTC变化的确切日期

当然,我可以循环一年中所有的日子(精确到分钟),并找出具体的时间,但。。。PHP知道这个日期,我认为一定有一种方法——用简单的函数来获得它!
在以下位置找不到任何内容:

您可以使用
日期时区::getTransitions()

将打印如下内容:

[101] => Array
    (
        [ts] => 1445734800
        [time] => 2015-10-25T01:00:00+0000
        [offset] => 3600
        [isdst] => 
        [abbr] => CET
    )

[102] => Array
    (
        [ts] => 1459040400
        [time] => 2016-03-27T01:00:00+0000
        [offset] => 7200
        [isdst] => 1
        [abbr] => CEST
    )

[103] => Array
    (
        [ts] => 1477789200
        [time] => 2016-10-30T01:00:00+0000
        [offset] => 3600
        [isdst] => 
        [abbr] => CET
    )

[104] => Array
    (
        [ts] => 1490490000
        [time] => 2017-03-26T01:00:00+0000
        [offset] => 7200
        [isdst] => 1
        [abbr] => CEST
    )

您可以使用“开始日期”和“结束日期”参数限制所需的转换。

谢谢,这正是我想要的。我已编辑了您的答案,以在数组中显示当前年份的值。
[101] => Array
    (
        [ts] => 1445734800
        [time] => 2015-10-25T01:00:00+0000
        [offset] => 3600
        [isdst] => 
        [abbr] => CET
    )

[102] => Array
    (
        [ts] => 1459040400
        [time] => 2016-03-27T01:00:00+0000
        [offset] => 7200
        [isdst] => 1
        [abbr] => CEST
    )

[103] => Array
    (
        [ts] => 1477789200
        [time] => 2016-10-30T01:00:00+0000
        [offset] => 3600
        [isdst] => 
        [abbr] => CET
    )

[104] => Array
    (
        [ts] => 1490490000
        [time] => 2017-03-26T01:00:00+0000
        [offset] => 7200
        [isdst] => 1
        [abbr] => CEST
    )