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


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 mssql 时间格式问题
Jan 13 PHP
Discuz!下Memcache缓存实现方法
May 28 PHP
PHP 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
Oct 03 PHP
基于MySQL到MongoDB简易对照表的详解
Jun 03 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
CI框架中zip类应用示例
Jun 17 PHP
Linux下php5.4启动脚本
Aug 03 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
Oct 28 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 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下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
使用js判断当前时区TimeZone是否是夏令时
2014/02/23 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
Python访问MySQL封装的常用类实例
2014/11/11 Python
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
速记Python布尔值
2017/11/09 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
python的等深分箱实例
2019/11/22 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
应聘编辑自荐信范文
2014/03/12 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
大学专科求职信
2014/07/02 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
800字作文之大雪
2019/12/04 职场文书