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中Session的概念
Oct 09 PHP
PHP 日期加减的类,很不错
Oct 10 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php如何调用webservice应用介绍
Nov 24 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
PHP编程之设置apache虚拟目录
Jul 08 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
PHP 代码简洁之道(小结)
Oct 16 PHP
php+laravel依赖注入知识点总结
Nov 04 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 curl 并发最佳实践代码分享
2012/09/05 PHP
php-fpm配置详解
2014/02/12 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
通过C++学习Python
2015/01/20 Python
Python最长公共子串算法实例
2015/03/07 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
Django 路由控制的实现代码
2018/11/08 Python
Python中按键来获取指定的值
2019/03/02 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
北承题目(C++)
2012/05/16 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
文员个人的求职信范文
2013/09/26 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
社区护士演讲稿
2014/08/27 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
语文教师求职信范文
2015/03/20 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP