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


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可能遇到的问题“无法载入mysql扩展” 的解决方法
Apr 16 PHP
php设计模式 Decorator(装饰模式)
Jun 26 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
php集成动态口令认证
Jul 21 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
php 解析非标准json、非规范json
Apr 01 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函数连续调用实例分析
2015/07/30 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
python模拟enum枚举类型的方法小结
2015/04/30 Python
用Python中的字典来处理索引统计的方法
2015/05/05 Python
python学习 流程控制语句详解
2016/06/01 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
python使用pymysql实现操作mysql
2016/09/13 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Python OS模块实例详解
2019/04/15 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
2019/09/23 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
学生学习总结的自我评价
2013/10/22 职场文书
办公室前台岗位职责范本
2013/12/10 职场文书
国贸专业的职业规划范文
2014/01/23 职场文书
白血病捐款倡议书
2014/05/14 职场文书
财务管理专业求职信
2014/06/11 职场文书
导游词之桂林
2019/08/20 职场文书
Python OpenCV形态学运算示例详解
2022/04/07 Python