这是一个计算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日起到指定日的天数的更多相关文章

  1. 一个目录遍历函数

  2. php 删除指定文件夹的实例讲解

    下面小编就为大家带来一篇php 删除指定文件夹的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. 一个高ai的分页函数和一个url函数

    ';else$url.='&';if{$color='';$colore='';}$totalpage=ceil;//页面数目$p_block=ceil;//块数目$n_block=ceil;//现在块$start=*$e_block1;$ended=$n_block*$e_block;if$ended=$totalpage;if{$link=$start-1;$head=''.$colo

  4. 你应该知道的tableViewCell行高计算处理

    这篇文章主要给大家介绍了关于tableViewCell行高计算的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. Java @Transactional指定回滚条件

    这篇文章主要介绍了Java @Transactional指定回滚条件,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下

  6. 随机广告显示(PHP函数)

    php#########随机广告显示##########functionmyads(){$dir="ads";#设置存放记录的目录//$dir="ads";#设置存放记录的目录$ads="$dir/ads.txt";#设置广告代码文件$log="$dir/ads.log";#设置ip记录文件$ads_lines=file;$lines=count;#文件总行数####读出广告总数$ads_count和显示次数到数组$display_array########$ads_count=0;$display_co

  7. Android实现简易计算功能

    这篇文章主要为大家详细介绍了Android实现简易计算功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  8. PHP编程计算日期间隔天数的方法

    这篇文章主要介绍了PHP编程计算日期间隔天数的方法,涉及php日期与时间的转换与运算相关操作技巧,需要的朋友可以参考下

  9. PHP模拟SQL Server的两个日期处理函数

    //在PHP中处理日期非常不方便,比如求两个日期之间相差的月份?//文件名:date.inc.php3//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型。

  10. PHP4在Windows2000下的安装

    注意别下载错了,那个PHP4.0.4ReleaseCandidate1Source是为Unix用户准备的,你需要的是PHP4.0.4ReleaseCandidate1BinariesforWin32。注意,首先你要安装IIS5,因为Win2000Professional默认安装时把它给忘了。第一步,解开PHP4.0.4-Win32.ZIP压缩包,你可以把它放在C:PHP4下面。第二步,把C:PHP4下面的php.ini-dist文件复制到WINNT目录下,并改名成php.ini。第八步,回到命令行窗口,输

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部