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


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 相关文章推荐
php4的session功能评述(三)
Oct 09 PHP
php.ini 中文版
Oct 28 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
php获得网站访问统计信息类Compete API用法实例
Apr 02 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
PHP抽象类与接口的区别详解
Mar 21 PHP
php传值和传引用的区别点总结
Nov 19 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 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 短链接算法收集与分析
2011/12/30 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
Python计算三维矢量幅度的方法
2015/06/15 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
python调用OpenCV实现人脸识别功能
2018/05/25 Python
简单分析python的类变量、实例变量
2019/08/23 Python
opencv+python实现均值滤波
2020/02/19 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
StubHub德国:购买和出售门票
2017/09/06 全球购物
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
NET程序员上机面试题
2015/05/23 面试题
Linux面试题LINUX系统类
2014/11/19 面试题
档案管理员岗位职责
2013/12/01 职场文书
数学系毕业生求职信
2014/05/29 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书