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


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 相关文章推荐
杏林同学录(三)
Oct 09 PHP
PHP 选项及相关信息函数库
Dec 04 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php实现webservice实例
Nov 06 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
用php定义一个数组最简单的方法
Oct 04 PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 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 $_SERVER详解
2009/01/16 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
php中array_slice和array_splice函数解析
2016/10/18 PHP
文字幻灯片
2006/06/26 Javascript
解放web程序员的输入验证
2006/10/06 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
UserData用法总结 lanyu出品
2010/07/01 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
python os模块简单应用示例
2019/05/23 Python
python同时替换多个字符串方法示例
2019/09/17 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
Python3读写ini配置文件的示例
2020/11/06 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
联想台湾官网:Lenovo TW
2018/05/09 全球购物
新郎新娘婚礼答谢词
2014/01/11 职场文书
社区国庆节活动方案
2014/02/05 职场文书
竞选部长演讲稿
2014/04/26 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
2014年副班长工作总结
2014/12/10 职场文书
2015年转正工作总结范文
2015/04/02 职场文书