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面向对象全攻略 (一) 面向对象基础知识
Sep 30 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
php 判断网页是否是utf8编码的方法
Jun 06 PHP
thinkphp实现上一篇与下一篇的方法
Dec 08 PHP
是 WordPress 让 PHP 更流行了 而不是框架
Feb 03 PHP
PHP实现防止表单重复提交功能【基于token验证】
May 24 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
Jun 03 PHP
PHP进阶学习之命名空间基本用法分析
Jun 18 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
Yii框架的redis命令使用方法简单示例
Oct 15 PHP
thinkphp5实现微信扫码支付
Dec 23 PHP
PHP dirname(__FILE__)原理及用法解析
Oct 28 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初学者(入门学习经验谈)
2010/10/12 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
form表单action提交的js部分与html部分
2014/01/07 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
浅谈javascript 函数属性和方法
2015/01/21 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
利用python获取Ping结果示例代码
2017/07/06 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
浅析Python 读取图像文件的性能对比
2019/03/07 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
工程部主管岗位职责
2013/11/17 职场文书
迟到检讨书5000字
2014/01/31 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
教师个人鉴定材料
2014/02/08 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
车辆年审委托书范本
2014/09/18 职场文书
授权委托书
2015/01/28 职场文书
荆州古城导游词
2015/02/06 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
Golang生成Excel文档的方法步骤
2021/06/09 Golang
解析redis hash应用场景和常用命令
2021/08/04 Redis
代码复现python目标检测yolo3详解预测
2022/05/06 Python