[摘要]这是一个计算2000年01月01日起到指定日的天数的函数 <br> (算头也算尾)日期格式为:YYYY-MM-DD <br> <?php //    计算从2000年0...
这是一个计算2000年01月01日起到指定日的天数的函数 
<br> 
(算头也算尾)日期格式为:YYYY-MM-DD 
<br> 
<?php 
//    计算从2000年01月01日开始到某日的天数 
function cal_start2end($end_day,$start_day) 
{ 
$start_day=ereg_replace("-","",$start_day); 
$end_day=ereg_replace("-","",$end_day); 
if($end_day>=$start_day) 
{    //    截止日期大于开始日期 
    if(substr($end_day,0,4)==substr($start_day,0,4)) 
        { 
if( is_int(substr($end_day,0,4)/4) ) 
    $leap_day=29;    //leap year 
else 
    $leap_day=28; 
//            //同一年 
        if(substr($end_day,4,2)==substr($start_day,4,2)) 
            { 
//            the same month  
            $endday_from_startday=$end_day-$start_day+1; 
            } 
        else 
            { 
//             not same month 
            switch (substr($end_day,4,2)) 
                { 
                case "01": 
                        $endday_from_newyear=substr($end_day,6,2)+1; 
                        break; 
                case "02": 
                        $endday_from_newyear=substr($end_day,6,2)+31; 
                        break; 
                case "03": 
                        $endday_from_newyear=substr($end_day,6,2)+$leap_day+31; 
                        break; 
                case "04": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*2; 
                        break; 
                case "05": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*2+30; 
                        break; 
                case "06": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*3+30; 
                        break; 
                case "07": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*2+30*2; 
                        break; 
                case "08": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*3+30*2; 
                        break; 
                case "09": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*5+30*2; 
                        break; 
                case "10": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*5+30*3; 
                        break; 
                case "11": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*5+30*4; 
                        break; 
                case "12": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*5+30*5; 
                        break; 
                } 
            $endday_from_startday=$endday_from_newyear; 
            } 
return ($endday_from_startday); 
        } 
    else 
        { 
//        不同年! 
$differ_year=substr($end_day,0,4)-substr($start_day,0,4); 
$how_int_4_floor=floor($differ_year/4)+1; // 向下取整 
$how_int_4_ceil=ceil($differ_year/4)+1; // 向上取整 
if($how_int_4_floor==$how_int_4_ceil) 
    $how_leap_year=$how_int_4_floor-1; 
else 
    $how_leap_year=$how_int_4_floor; 
$how_noleap_year=$differ_year-$how_leap_year; 
$differ_year2day=$how_noleap_year*365+$how_leap_year*366; 
if( is_int(substr($end_day,0,4)/4) ) 
    $leap_day=29;    //leap year 
else 
    $leap_day=28; 
        if(substr($end_day,4,2)==substr($start_day,4,2)) 
            { 
//            the same month  
            $endday_from_startday=$differ_year2day+ substr($end_day,4,2); 
            } 
        else 
            { 
//             not same month 
            switch (substr($end_day,4,2)) 
                { 
                case "01": 
                        $endday_from_newyear=substr($end_day,6,2)+1; 
                        break; 
                case "02": 
                        $endday_from_newyear=substr($end_day,6,2)+1+31; 
                        break; 
                case "03": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31; 
                        break; 
                case "04": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*2; 
                        break; 
                case "05": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*2+30; 
                        break; 
                case "06": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*3+30; 
                        break; 
                case "07": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*2+30*2; 
                        break; 
                case "08": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*3+30*2; 
                        break; 
                case "09": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*5+30*2; 
                        break; 
                case "10": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*5+30*3; 
                        break; 
                case "11": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*5+30*4; 
                        break; 
                case "12": 
                        $endday_from_newyear=substr($end_day,6,2)+1+$leap_day+31*5+30*5; 
                        break; 
                } //End of switch 
    $endday_from_startday=$endday_from_newyear+$differ_year2day; 
    }    //End of  not same month  
return ($endday_from_startday); 
        } //End of year 
}        //End of  $end_day>=$start_day 
} //End of function 
$start_day="2000-01-01"; 
$end_day="2011-01-01"; 
echo "您输入的是:".$end_day."<br>\n"; 
$endday_from_startday=cal_start2end($end_day,$start_day); 
echo "该日距离$start_day 共 ".$endday_from_startday." 天"; 
?> 
<br><br><br><br>时间太少了,那位大虾可以修改为计算任意两日期之间的间隔最好!!!!!   
关键词:计算2000年01月01日起到指定日的天数