这是一个PHP date()错误吗?

时间:2017-03-01 17:11:15

标签: php

这是我的代码:

<?php

echo date("Y-m-d H:i:s",1477785600) ;
echo "<br />";
echo date("Y-m-d H:i:s",1477789200) ;

?>

,结果是

2016-10-30 02:00:00
2016-10-30 02:00:00

为什么date()会使用不同的时间戳获得相同的结果?
这是一个PHP错误吗?

我的环境设置是:

  • date.timezone =欧洲/柏林
  • PHP Version 5.6.30

  • 1 个答案:

    答案 0 :(得分:6)

    这是正确的输出。在西欧,由于夏令时,2016年10月30日是2点两次:

    1. 首先是2点CEST(+0200)。

    2. 一小时后,凌晨3点,时钟重置了一小时,时间是2点CET(+0100)。

    3. 这里有一个更清晰的test case

      date_default_timezone_set('Europe/Berlin');
      echo date("r",1477785600) . "\n";
      echo date("r",1477789200) ;
      
      Sun, 30 Oct 2016 02:00:00 +0200
      Sun, 30 Oct 2016 02:00:00 +0100