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 相关文章推荐
NOT NULL 和NULL
Jan 15 PHP
三种php连接access数据库方法
Nov 11 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
Nov 22 PHP
初识ThinkPHP控制器
Apr 07 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
php分页查询的简单实现代码
Mar 14 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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通过baihui网API实现读取word文档并展示
2015/06/22 PHP
php商品对比功能代码分享
2015/09/24 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
javascript multibox 全选
2009/03/22 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
js实现进度条的方法
2015/02/13 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
linux面试题参考答案(8)
2015/08/11 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
会展中心部门工作职责
2013/11/27 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
云冈石窟导游词
2015/02/04 职场文书