如何实现给定日期的若干天以后的日期

  • 来源: 互联网 作者: rocket   2008-03-17/09:48
  • 这几天突然有很多的人问这样的问题,就是如何在PHP中实现在VB中的DateAdd的函数,呵呵!这个可是问个正着。
    本来这个问题是 豆腐 去 华为 应聘的时候的一个考试题,不过当时是用C 实现的。没有想到这样的大公司,竟
    然用这样的小儿科来考试:),后来我没有去,这两天 应 http://www.chinaspx.com 的 网友--》运气,用PHP重新
    写了这个函数。
    这个函数是很简单,就是加上给 指定时间加上一天,得到新生成的日期,如果要扩展,也是很简单的。
    下面首先来看这个函数,首先要提前讲个函数,判断当前是否是闰年的函数
    function CheckRun($year){
    if( $year%4==0 && ($year0!=0 || $year@0==0) )
    return true;
    else
    return false;
    }
    我们要在下面的程序中用到这个函数
    function DateAdd($date){
    $parts = explode(' ', $date);
    $date = $parts[0];
    $time = $parts[1];
    $ymd = explode('-', $date);
    $hms = explode(':', $time);
    $year = $ymd[0];
    $month = $ymd[1];
    $day = $ymd[2];
    $hour = $hms[0];
    $minute = $hms[1];
    $second = $hms[2];
     $day= $day 1 ; //废话少说,先把日期加一再说
    if($month=='1' || $month=='3' || $month=='5' || $month=='7' || $month=='8' || $month=='10' || $month=='12')
    if($day==32)
    {
    $day='1';
    $month ;
    }
    if($month=='4' || $month=='6' || $month=='9' || $month=='11')
    if($day==31)
    {
    $day='1';
    $month ;
    }
    if($month=='2')
    if(CheckRun($year))
    {
    //闰年 2月有 29 天
    if($day==30)
    {
    $day=1;
    $month ;
    }
    }
    else
    {
    //不是闰年
    if($day==29)
    {
    $day=1;
    $month ;
    }
    }
    if($month==13)
    {
    $month=1;
    $year ;
    }
    return $year . "-" . $month . "-" . $day;
    }
    好了,下面来测试一下
    echo DateAdd("1999-12-31 11:11:11");
    echo DateAdd("2000-2-29 11:11:11");
    如果要测试增加若干天,只要加个循环就可以了,相信大家都是 高人,这个功能很简单吧:)
    彷徨一小生

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多