//计算距公元1年1月1日的天数,$yyyy年分,$mm月份,$dd日
function datelocal($yyyy,$mm,$dd){
$monthdays = array(31,28,31,30,31,30,31,31,30,31,30,31); //非闰年的月份天数
//判断是否为闰年,闰年$leapyear = 1,否则 $leapyear = 0
if($yy%4==0 && $yyyy%100!=0 || $yyyy%400==0)
$leapyear = 1;
else
$leapyear = 0;
//计算距公元1年1月1日的天数: 年天数+月天数+日天数
$days = ($yyyy-1)*365 + floor(($yyyy-1)/4) - floor(($yyyy-1)/100) + floor(($yyyy-1)/400);
for($i=1;$i<=$mm;$i++){
$days += $monthdays[$i-2];
if($leapyear==1 && $i==3) //所在年份为闰年,且月份超过2月:28天+1天
$days += 1;
}
$days += $dd -1;
return $days;
}
//计算 $yyyy2-$mm2-$dd2, $yyyy1-$mm1-$dd1 相差天数
function datediff($yyyy2,$mm2,$dd2,$yyyy1,$mm1,$dd1){
$daysdiff = abs(datelocal($yyyy2,$mm2,$dd2) - datelocal($yyyy1,$mm1,$dd1));
return $daysdiff;
}
echo datediff(2008,5,10,2009,5,1);
转自:http://www.drulanz.com/website-build/lamp/phpdaysdiff/
每次我们访问 PHP 脚本的时候,都是当所有的PHP脚本执行完成后,我们才得到返回结果。如果我们需要一个脚本持续的运行,那么我们就要通过 PHP 长连接的方式,来达到运行目的。
每个 PHP 脚本都限制了执行时间,所以我们需要通过 set_time_limit 来设置一个脚本的执行时间为无限长;然后使用 flush() 和 ob_flush() ......