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学习之PHP运算符
Oct 09 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
分享PHP header函数使用教程
Sep 05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
Dec 17 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
PHP实现文件上传功能实例代码
May 18 PHP
thinkPHP框架RBAC实现原理分析
Feb 01 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 程序员的调试技术小结
2009/11/15 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
php的sso单点登录实现方法
2015/01/08 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
php函数式编程简单示例
2019/08/08 PHP
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
vue ssr 指南详读
2018/06/29 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
详解Python中is和==的区别
2019/03/21 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
酒店前台接待岗位职责
2013/12/03 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
2014离婚协议书范文
2014/09/10 职场文书
安全生产标语大全
2014/10/06 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
看上去很美观后感
2015/06/10 职场文书
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
Go语言入门exec的基本使用
2022/05/20 Golang