3

这是我的代码:

<?php
    $aaa = array(
        1224972000,
        1224973800,
        1224975600,
        1224977400,
        1224979200,
        1224981000,
        1224982800,
        1224984600,
        1224986400,
        1224988200,
        1224990000,
        1224991800,
        1224993600,
        1224995400,
        1224997200,
    );
    foreach ($aaa as $ts) {
        $date = \date('m/d/Y,H:i:s', $ts);
        echo "$date \n";
    }

And the result is :
10/26/2008,00:00:00
10/26/2008,00:30:00
10/26/2008,01:00:00
10/26/2008,01:30:00
**10/26/2008,02:00:00
10/26/2008,02:30:00
10/26/2008,02:00:00
10/26/2008,02:30:00**
10/26/2008,03:00:00
10/26/2008,03:30:00
10/26/2008,04:00:00
10/26/2008,04:30:00
10/26/2008,05:00:00
10/26/2008,05:30:00
10/26/2008,06:00:00

为什么 ?

4

3 回答 3

4

我想在您选择的时区中,日期从那天的夏令时切换,所以有两个凌晨 2:00。我看到你在利物浦学习——这会是在英国机器上吗?10 月的最后一个星期日传统上是英国夏令时间和格林威治标准时间之间的转换日期。我相信欧洲大部分地区也是如此。

尝试添加:

    date_default_timezone_set("UTC");

在脚本的开头;这将在没有 DST 调整的情况下将时区固定为一个。你应该会发现你得到了独特的结果。

于 2013-08-26T11:40:42.310 回答
3

取决于你在哪个时区!

对于您所在的地区,夏令时可能会在每年 10 月的最后一个星期日结束,或者 2008 年就是这样。

因此,不同的时间戳代表相同的时间。

于 2013-08-26T11:44:40.953 回答
-1

我有我的答案:我的服务器给我 reno@ubuntu:~$ date -d @1224979200 dimanche 2008 年 10 月 26 日,02:00:00 (UTC+0200) reno@ubuntu:~$ date -d @1224982800 dimanche 10 月 26 日2008 年 02:00:00 (UTC+0100)

原因是 http://www.lecalendrier.fr/changement-d-heure-2008

我真蠢

于 2013-08-26T11:52:52.573 回答