//計算距公元1年1月1日的天數,$yyyy年分,$mm月份,$dd日<br />function datelocal($yyyy,$mm,$dd){<br />$monthdays = array(31,28,31,30,31,30,31,31,30,31,30,31); //非閏年的月份天數<br />//判斷是否為閏年,閏年$leapyear = 1,否則 $leapyear = 0<br />if($yy%4==0 && $yyyy%100!=0 || $yyyy%400==0)<br />$leapyear = 1;<br />else<br />$leapyear = 0;<br />//計算距公元1年1月1日的天數: 年天數+月天數+日天數<br />$days = ($yyyy-1)*365 + floor(($yyyy-1)/4) - floor(($yyyy-1)/100) + floor(($yyyy-1)/400);<br />for($i=1;$i<=$mm;$i++){<br />$days += $monthdays[$i-2];<br />if($leapyear==1 && $i==3) //所在年份為閏年,且月份超過2月:28天+1天<br />$days += 1;<br />}<br />$days += $dd -1;<br />return $days;<br />}<br />//計算 $yyyy2-$mm2-$dd2, $yyyy1-$mm1-$dd1 相差天數<br />function datediff($yyyy2,$mm2,$dd2,$yyyy1,$mm1,$dd1){<br />$daysdiff = abs(datelocal($yyyy2,$mm2,$dd2) - datelocal($yyyy1,$mm1,$dd1));<br />return $daysdiff;<br />}<br />echo datediff(2008,5,10,2009,5,1);
轉自:http://www.drulanz.com/website-build/lamp/phpdaysdiff/