如何实现给定日期的若干天以后的日期
【字号:
大 中 小】
日期:2023-09-10 13:45:44浏览:7作者:馨心
这几天突然有很多的人问这样的问题,就是如何在PHP中实现在VB中的DateAdd的函数,呵呵!这个可是问个正着。本来这个问题是 豆腐 去 华为 应聘的时候的一个考试题,不过当时是用C++实现的。没有想到这样的大公司,竟然用这样的小儿科来考试:),后来我没有去,这两天 应 http://www.chinaspx.com 的 网友--》运气,用PHP重新写了这个函数。这个函数是很简单,就是加上给 指定时间加上一天,得到新生成的日期,如果要扩展,也是很简单的。下面首先来看这个函数,首先要提前讲个函数,判断当前是否是闰年的函数function CheckRun($year){if($year%4==0 && ($year%100!=0 || $year%400==0) )return true;elsereturn 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");如果要测试增加若干天,只要加个循环就可以了,相信大家都是 高人,这个功能很简单吧:)