首页 > 后端开发 > php教程 > 计算2000年01月01日起到指定日的天数_php基础

计算2000年01月01日起到指定日的天数_php基础

WBOY
发布: 2016-05-17 09:46:13
原创
1149 人浏览过

这是一个计算2000年01月01日起到指定日的天数的函数


(算头也算尾)日期格式为:YYYY-MM-DD



//    计算从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;

            }
        其他
            {
//            不是同一个月


            switch (substr($end_day,4,2))
                {
                案例“01”:
                        $endday_from_newyear=substr($end_day,6,2) 1;
                        休息;
                案例 "02":
                        $endday_from_newyear=substr($end_day,6,2) 31;
                        休息;
                案例 "03":
                        $endday_from_newyear=substr($end_day,6,2) $leap_day 31;
                        休息;
                案例 "04":
                        $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2;
                        休息;
                案例 "05":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2 30;
                        休息;
                案例 "06":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*3 30;
                        休息;
                案例 "07":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2 30*2;
                        休息;
                案例 "08":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*3 30*2;
                        休息;
                案例 "09":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*2;
                        休息;
                案例“10”:
                        $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*3;
                        休息;
                案例 "11":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*4;
                        休息;
                案例 "12":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*5;
                        休息;
                }
            $endday_from_startday=$endday_from_newyear;
            }

return ($endday_from_startday);

        }
    否则
        {
//         不同的年份!

$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;
其他
    $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;    //闰年
else
    $leap_day=28;



        if(substr($end_day,4,2)==substr($start_day,4,2))
            {
//            同月  
$endday_from_startday=$differ_year2day substr($end_day,4,2);

            }
        其他
            {
//            不是同一个月


            switch (substr($end_day,4,2))
                {
                案例“01”:
                        $endday_from_newyear=substr($end_day,6,2) 1;
                        休息;
                案例 "02":
                        $endday_from_newyear=substr($end_day,6,2) 1 31;
                        休息;
                案例 "03":
                        $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31;
                        休息;
                案例 "04":
                        $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2;
                        休息;
                案例 "05":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2 30;
                        休息;
                案例 "06":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*3 30;
                        休息;
                案例 "07":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2 30*2;
                        休息;
                案例 "08":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*3 30*2;
                        休息;
                案例 "09":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*2;
                        休息;
                案例“10”:
                        $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*3;
                        休息;
                案例 "11":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*4;
                        休息;
                案例 "12":
                       $endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*5;
                        休息;
                } // 切换结束


    $endday_from_startday=$endday_from_newyear $differ_year2day;
    }    //不同月结束  



return ($endday_from_startday);


        } // 年末
}        //$end_day>=$start_day 结束



} // 函数结束


$start_day="2000-01-01";

$end_day="2011-01-01";

echo "您输入的是:".$end_day."
n";
$endday_from_startday=cal_start2end($end_day,$start_day);

echo "该日距离$start_day 共 ".$endday_from_startday." 天";

?>




时间太少了,那个大虾用来计算任意两个日期之间的间隔最好!!!!! 

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板