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 相关文章推荐
PHP编程中八种常见的文件操作方式
Nov 19 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
php中异常处理方法小结
Jan 09 PHP
php中使用gd库实现远程图片下载实例
May 12 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
laravel 配置路由 api和web定义的路由的区别详解
Sep 03 PHP
PHP利用curl发送HTTP请求的实例代码
Jul 09 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和C#可共用的可逆加密算法详解
2015/10/26 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
关于vue面试题汇总
2018/03/20 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
python程序变成软件的实操方法
2019/06/24 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
python识别验证码的思路及解决方案
2020/09/13 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
韩国现代百货官网:Hmall
2018/03/21 全球购物
文明村创建实施方案
2014/03/27 职场文书
党课培训主持词
2014/04/01 职场文书
党性分析自查总结
2014/10/14 职场文书
英语导游词
2015/02/13 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB