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


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写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP输入流php://input介绍
Sep 18 PHP
php中用加号与用array_merge合并数组的区别深入分析
Jun 03 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 PHP
php使用curl获取https请求的方法
Feb 11 PHP
php中JSON的使用方法
Apr 30 PHP
怎样搭建PHP开发环境
Jul 28 PHP
[原创]php使用curl判断网页404(不存在)的方法
Jun 23 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
PHP时间函数使用详解
Mar 21 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 mssql 数据库分页SQL语句
2008/12/16 PHP
PHP中的integer类型使用分析
2010/07/27 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
js活用事件触发对象动作
2008/08/10 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
python类继承用法实例分析
2014/10/10 Python
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
Python 加密的实例详解
2017/10/09 Python
python 实现UTC时间加减的方法
2018/12/31 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
小学音乐教学反思
2014/02/05 职场文书
三查三看党性分析材料
2014/02/18 职场文书
保密普查工作实施方案
2014/02/25 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
2015年市场部工作总结
2015/04/30 职场文书
小学数学教师研修感悟
2015/11/18 职场文书