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 相关文章推荐
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
非常经典的PHP文件上传类分享
May 15 PHP
php图片添加水印例子
Jul 20 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
php中namespace及use用法分析
Dec 06 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
PHP网页缓存技术优点及代码实例
Jul 29 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导入excel文件到mysql数据库的方法
2015/01/14 PHP
深入理解PHP内核(一)
2015/11/10 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
PHP查询分页的实现代码
2017/06/09 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
Python中装饰器学习总结
2018/02/10 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
护士自我鉴定范文
2013/10/06 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
党内外群众意见范文
2015/06/02 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
python中的None与NULL用法说明
2021/05/25 Python
Python实现简单得递归下降Parser
2022/05/02 Python