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 相关文章推荐
怎样在UNIX系统下安装php3
Oct 09 PHP
php巧获服务器端信息
Dec 06 PHP
php中支持多种编码的中文字符串截取函数!
Mar 20 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
Apr 28 PHP
PHP之数组学习
May 29 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
PDO::rollBack讲解
Jan 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程序员不应该忽略的3点
2015/10/09 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
详解vue组件基础
2018/05/04 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
python 爬取疫情数据的源码
2020/02/09 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python 在局部变量域中执行代码
2020/08/07 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
python中封包建立过程实例
2021/02/18 Python
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
银行会计业务的个人自我评价
2013/11/02 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
时尚女魔头观后感
2015/06/04 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书