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

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

(0)

相关推荐

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

    这几天突然有很多的人问这样的问题,就是如何在PHP中实现在VB中的DateAdd的函数,呵呵!这个可是问个正着.本来这个问题是 豆腐 去 华为 应聘的时候的一个考试题,不过当时是用C++实现的.没有想到这样的大公司,竟然用这样的小儿科来考试:),后来我没有去,这两天 应 http://www.chinaspx.com 的 网友-->运气,用PHP重新写了这个函数.这个函数是很简单,就是加上给 指定时间加上一天,得到新生成的日期,如果要扩展,也是很简单的.下面首先来看这个函数,首先要提前讲个函数,

  • python判断给定的字符串是否是有效日期的方法

    本文实例讲述了python判断给定的字符串是否是有效日期的方法.分享给大家供大家参考.具体分析如下: 这里python判断给定的字符串是否是一个有效的日期,如果是一个日期格式的字符串,该函数返回True,否则返回False def is_valid_date(str): '''判断是否是一个有效的日期字符串''' try: time.strptime(str, "%Y-%m-%d") return True except: return False 希望本文所述对大家的Python程序

  • php计算给定日期所在周的开始日期和结束日期示例

    本文实例讲述了php计算给定日期所在周的开始日期和结束日期.分享给大家供大家参考,具体如下: <?php /** * 取得给定日期所在周的开始日期和结束日期 * @param string $gdate 日期,默认为当天,格式:YYYY-MM-DD * @param int $weekStart 一周以星期一还是星期天开始,0为星期天,1为星期一 * @return array 数组array( "开始日期 ", "结束日期"); */ function ge

  • Ext JS框架中日期函数的用法及日期选择控件的实现

    Ext.Date是一个单例,封装了一系列日期操作函数,扩展JavaScript Date的功能,下面列出一些常用的功能. 基本函数: Ext.Date.add(date, interval, value) 给date增加或减少时间,这个函数不改变原有Date对象的值,而是返回一个新的Date对象. Ext.Date.between(date, start, end) 判断date是否在start和end之间. Ext.Date.clearTime(date, clone) 把date的时间设置成

  • ASP.NET My97DatePicker日期控件实现OA日期记事功能

    My97DatePicker日期控件是一个非常好用的日期控件,功能非常优秀的日期控件. 对实现页面刷新完善的很好,用日期控件时可以有比较好的享受,这次的OA日期记事功能也得益于此控件,具体效果图如下: 部分代码: Default页布局一个Calendar日期控件 <div> <asp:Calendar ID="Calendar1" runat="server" Width="100%" ShowGridLines="T

  • PHP日期处理函数 整型日期格式

    当我过去用ASP时解决这个问题相当简单,ASP有相应的函数DateDiff可以给出两个日期间间隔多少月.多少天和多少秒.当我搜寻完PHP手册后我发现PHP并没有类似的函数. 本文包含以下内容: 1. 得到目前的日期和时间-我们有多少种方式? 2. 改变日期显示的方式-日期和时间的显示形式 3. 转换现在的日期为Unix的时间戳值 4. 改变日期 a. 增加时间 b. 减去时间 c. 找出两日期之间的间隔 5. 为PHP添加DateAdd函数 6. 为PHP添加DateDiff函数 **得到目前的

  • 如何使用PHP获取指定日期所在月的开始日期与结束日期

    复制代码 代码如下: /**     * 获取指定日期所在月的开始日期与结束日期     * @param string $date     * @param boolean 为true返回开始日期,否则返回结束日期     * @return array     * @access private     */    private function getMonthRange( $date, $returnFirstDay = true ) {        $timestamp = str

  • iview日期控件,双向绑定日期格式的方法

    日期在双向绑定之后格式为:2017-07-03T16:00:00.000Z 想要的格式为2017-07-04 调了好久,几乎一天:用一句话搞定了 @on-change="addForm.Birthday=$event" <Date-picker placeholder="选择日期" type="datetime" v-model="addForm.Birthday" :key="addForm.Birthday

  • 易语言设置日期框禁止选择以前日期的代码

    禁止日期框选择小于当前日期的代码 .版本 2 .程序集 窗口程序集1 .子程序 _日期框_选择日期被改变 .如果真 (日期框.今天 < 取现行时间 ()) 信息框 ("不可选择以前的日期!", 16, "提示", ) 日期框.今天 = 取现行时间 () 返回 () .如果真结束 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • JavaScript实现字符串与日期的互相转换及日期的格式化

    字符串转日期.日期转字符串 // 2014-02-25 /** * 字符串转时间(yyyy-MM-dd HH:mm:ss) * result (分钟) */ stringToDate : function(fDate){ var fullDate = fDate.split("-"); return new Date(fullDate[0], fullDate[1]-1, fullDate[2], 0, 0, 0); } /** * 格式化日期 * @param date 日期 * @

随机推荐