我有一个奇怪的问题:
我从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;
}
}
}
}具有给定的日期(也包括时间戳)
where $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而不是。
我猜原因是夏季改为冬季,但我不知道如何解决这个问题。有什么提示吗?
发布于 2012-10-13 02:34:39
试试DateTime:
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');发布于 2012-10-13 02:34:32
您将遇到基于夏令时的时间更改。
请看这个问题:php - timestamp - interval between days not always 86400 seconds - why?
https://stackoverflow.com/questions/12864807
复制相似问题