//¼ÆËã¾à¹«Ôª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/