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


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
留言板翻页的实现详解
Oct 09 PHP
elgg 获取文件图标地址的方法
Mar 20 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
php自动获取关键字的方法
Jan 06 PHP
Laravel实现表单提交
May 07 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 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缓存类实例
2014/07/18 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
python字典改变value值方法总结
2019/06/21 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
商务助理岗位职责
2013/11/13 职场文书
大学生怎样进行自我评价
2013/12/07 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
银行办公室岗位职责
2014/03/10 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
学校评语大全
2014/05/06 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
解析MySQL binlog
2021/06/11 MySQL
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android