3

我有一个奇怪的问题:
我从 mysql 数据库中获取了一些数据,我用 strotime 将这些数据转换为时间戳。然后我将这些时间戳与 for 循环进行比较:

for ($i=$start;$i<=$end;$i=$i+86400){
 $ptag=date("w",$i);
 if ($i<=$checkdateend){
   if ($wochendays[$ptag]==1){
     if (!in_array($i,$solvedays)){
      $solvedays[]=$i;
     }
   }
 }
}

给定日期(也是时间戳)
,其中 $wochendays=(0,0,1,0,1,0,0)

这很好用,但是当我跨过夏季/冬季变化时,我遇到了问题。
在solvedays数组中应该有这些值:

27.10.2012
28.10.2012
29.10.2012

但我明白了

27.10.2012
28.10.2012
28.10.2012

反而。
我想原因是夏季改为冬季,但我不知道如何解决这个问题。任何提示?

4

2 回答 2

2

尝试日期时间:

$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
于 2012-10-12T18:34:39.450 回答
0

您遇到了基于夏令时的时间变化。

看到这个问题:php - 时间戳 - 天之间的间隔并不总是 86400 秒 - 为什么?

于 2012-10-12T18:34:31.777 回答