//计算距公元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/