php计算两个日期时间差(返回年、月、日)


Posted in PHP onJune 19, 2014

在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等。在文章中,简单地举例介绍了PHP中如何计算两个日期相差 年、月、日。

<?php 
 
/** 
 +---------------------------------------------------------- 
 * 功能:计算两个日期相差 年 月 日 
 +---------------------------------------------------------- 
 * @param date   $date1 起始日期 
 * @param date   $date2 截止日期日期 
 +---------------------------------------------------------- 
 * @return array       
 +---------------------------------------------------------- 
 */
function DiffDate($date1, $date2) { 
  if (strtotime($date1) > strtotime($date2)) { 
    $ymd = $date2; 
    $date2 = $date1; 
    $date1 = $ymd; 
  } 
  list($y1, $m1, $d1) = explode('-', $date1); 
  list($y2, $m2, $d2) = explode('-', $date2); 
  $y = $m = $d = $_m = 0; 
  $math = ($y2 - $y1) * 12 + $m2 - $m1; 
  $y = round($math / 12); 
  $m = intval($math % 12); 
  $d = (mktime(0, 0, 0, $m2, $d2, $y2) - mktime(0, 0, 0, $m2, $d1, $y2)) / 86400; 
  if ($d < 0) { 
    $m -= 1; 
    $d += date('j', mktime(0, 0, 0, $m2, 0, $y2)); 
  } 
  $m < 0 && $y -= 1; 
  return array($y, $m, $d); 
} 
?>
PHP 相关文章推荐
由php if 想到的些问题
Mar 22 PHP
PHP 数组实例说明
Aug 18 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
php递归json类实例
Dec 02 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
你应该知道PHP浮点数知识
May 13 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
PHP房贷计算器实例代码,等额本息,等额本金
Apr 01 PHP
php生成0~1随机小数的方法(必看)
Apr 05 PHP
php通过各种函数判断0和空
Jul 04 PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 PHP
php使用百度ping服务代码实例
Jun 19 #PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 #PHP
PHP采集类Snoopy抓取图片实例
Jun 19 #PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 #PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 #PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 #PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 #PHP
You might like
PHP伪静态写法附代码
2008/06/20 PHP
PHP安全性漫谈
2012/06/28 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
JS中的BOM应用
2018/02/02 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
Python深入学习之装饰器
2014/08/31 Python
解决Python requests 报错方法集锦
2017/03/19 Python
Python解惑之整数比较详解
2017/04/24 Python
python通过zabbix api获取主机
2018/09/17 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
升学宴主持词
2014/04/02 职场文书
初中学校军训方案
2014/05/09 职场文书
运动会方队口号
2014/06/07 职场文书
学习普通话的体会
2014/11/07 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
门卫岗位职责
2015/02/09 职场文书
车间班组长竞聘书
2015/09/15 职场文书
如何写好闭幕词
2019/04/02 职场文书
goland 清除所有的默认设置操作
2021/04/28 Golang
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
Java实现给Word文件添加文字水印
2022/02/15 Java/Android