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


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中时间轴开发(刚刚、5分钟前、昨天10:23等)
Oct 03 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
php导出word文档与excel电子表格的简单示例代码
Mar 08 PHP
php中session使用示例
Mar 29 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
PHP在线书签系统分享
Jan 04 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
Feb 16 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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
用cookies来跟踪识别用户
2006/10/09 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
php格式文件打开的四种方法
2018/02/24 PHP
jquery.post用法之type设置问题
2014/02/24 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
Python中的进程分支fork和exec详解
2015/04/11 Python
Python中list初始化方法示例
2016/09/18 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
利用Python实现kNN算法的代码
2019/08/16 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
性能测试工程师的面试题
2015/02/20 面试题
医院护理人员的自我评价分享
2013/10/04 职场文书
咖啡店自主创业商业计划书
2014/01/22 职场文书
治超工作实施方案
2014/05/04 职场文书
计划生育宣传标语
2014/06/21 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
导游词之镜泊湖
2019/12/09 职场文书
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
Python各协议下socket黏包问题原理
2022/04/12 Python