我有一个奇怪的问题:
我从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)
这很好,但是当我穿越夏天/冬天的变化时,我遇到了问题 在solveays数组中应该有这些值:
27.10.2012
28.10.2012
29.10.2012
但我得到
27.10.2012
28.10.2012
28.10.2012
代替。
我想原因是夏季的夏季变化,但我没有任何线索如何解决这个问题。任何提示?
答案 0 :(得分:2)
尝试DateTime:
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
答案 1 :(得分:0)
您正在根据夏令时遇到时间变化。
请参阅此问题:php - timestamp - interval between days not always 86400 seconds - why?