php实现的DateDiff和DateAdd时间函数代码分享


Posted in PHP onAugust 16, 2014

扩展php中的时间函数DateDiff和DateAdd

function DateDiff($part, $begin, $end)
{
$diff = strtotime($end) - strtotime($begin);
switch($part)
{
case "y": $retval = bcdiv($diff, (60 * 60 * 24 * 365)); break;
case "m": $retval = bcdiv($diff, (60 * 60 * 24 * 30)); break;
case "w": $retval = bcdiv($diff, (60 * 60 * 24 * 7)); break;
case "d": $retval = bcdiv($diff, (60 * 60 * 24)); break;
case "h": $retval = bcdiv($diff, (60 * 60)); break;
case "n": $retval = bcdiv($diff, 60); break;
case "s": $retval = $diff; break;
}
return $retval;
}

function DateAdd($part, $number, $date)
{
$date_array = getdate(strtotime($date));
$hor = $date_array["hours"];
$min = $date_array["minutes"];
$sec = $date_array["seconds"];
$mon = $date_array["mon"];
$day = $date_array["mday"];
$yar = $date_array["year"];
switch($part)
{
case "y": $yar += $number; break;
case "q": $mon += ($number * 3); break;
case "m": $mon += $number; break;
case "w": $day += ($number * 7); break;
case "d": $day += $number; break;
case "h": $hor += $number; break;
case "n": $min += $number; break;
case "s": $sec += $number; break;
}
return date("Y-m-d H:i:s", mktime($hor, $min, $sec, $mon, $day, $yar));
}

Function DateAdd($part, $n, $date)
{
switch($part)
{
case "y": $val = date("Y-m-d H:i:s", strtotime($date ." +$n year")); break;
case "m": $val = date("Y-m-d H:i:s", strtotime($date ." +$n month")); break;
case "w": $val = date("Y-m-d H:i:s", strtotime($date ." +$n week")); break;
case "d": $val = date("Y-m-d H:i:s", strtotime($date ." +$n day")); break;
case "h": $val = date("Y-m-d H:i:s", strtotime($date ." +$n hour")); break;
case "n": $val = date("Y-m-d H:i:s", strtotime($date ." +$n minute")); break;
case "s": $val = date("Y-m-d H:i:s", strtotime($date ." +$n second")); break;
}
return $val;
}
PHP 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
php 什么是PEAR?
Mar 19 PHP
php下尝试使用GraphicsMagick的缩略图功能
Jan 01 PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
php笔记之:有规律大文件的读取与写入的分析
Apr 26 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
教你在PHPStorm中配置Xdebug
Jul 27 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
php出现内存位置访问无效错误问题解决方法
Aug 16 #PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 #PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 #PHP
php socket实现的聊天室代码分享
Aug 16 #PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 #PHP
php操作XML、读取数据和写入数据的实现代码
Aug 15 #PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 #PHP
You might like
php eval函数用法总结
2012/10/31 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
js单例模式的两种方案
2013/10/22 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
js轮播图的插件化封装详解
2017/07/17 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
Python判断某个用户对某个文件的权限
2016/10/13 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
大学生预备党员自我评价分享
2013/11/16 职场文书
大一期末自我鉴定
2013/12/13 职场文书
地理教师岗位职责
2014/03/16 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
个人道歉信大全
2019/04/11 职场文书