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


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做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
php中注册器模式类用法实例分析
Nov 03 PHP
PHP文件上传类实例详解
Apr 08 PHP
php微信开发之音乐回复功能
Jun 14 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
php双向队列实例讲解
Nov 17 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/js获取客户端mac地址的实现代码
2013/07/08 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
微信小程序组件 contact-button(客服会话按钮)详解及实例代码
2017/01/10 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Python的设计模式编程入门指南
2015/04/02 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
python实现扫雷小游戏
2020/04/24 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
国家励志奖学金获奖感言
2014/01/09 职场文书
给交警的表扬信
2014/01/12 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
奖学金感谢信
2015/01/21 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
python解析json数据
2022/04/29 Python