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


Posted in PHP onOctober 09, 2006

这几天突然有很多的人问这样的问题,就是如何在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");
如果要测试增加若干天,只要加个循环就可以了,相信大家都是 高人,这个功能很简单吧:)

PHP 相关文章推荐
PHP Header用于页面跳转要注意的几个问题总结
Oct 03 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
php导出CSV抽象类实例
Sep 24 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 PHP
php使用递归函数实现数字累加的方法
Mar 16 PHP
PHP设计模式之适配器模式代码实例
May 11 PHP
php结合正则获取字符串中数字
Jun 19 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
PHP+MySQL实现消息队列的方法分析
May 09 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 PHP
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 #PHP
实时抓取YAHOO股票报价的代码
Oct 09 #PHP
php访问查询mysql数据的三种方法
Oct 09 #PHP
杏林同学录(一)
Oct 09 #PHP
杏林同学录(二)
Oct 09 #PHP
基于mysql的bbs设计(五)
Oct 09 #PHP
PHP+DBM的同学录程序(5)
Oct 09 #PHP
You might like
在PHP中利用XML技术构造远程服务(上)
2006/10/09 PHP
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
简单使用Python自动生成文章
2014/12/25 Python
简单的编程0基础下Python入门指引
2015/04/01 Python
Python中的自省(反射)详解
2015/06/02 Python
执行Python程序时模块报错问题
2020/03/26 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
网络工程师个人的自我评价范文
2013/10/01 职场文书
员工生日活动方案
2014/08/24 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
信访稳定工作汇报
2014/10/27 职场文书
销售2014年度工作总结
2014/12/08 职场文书
迎新年主持词
2015/07/06 职场文书