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 相关文章推荐
网站当前的在线人数
Oct 09 PHP
php 获取可变函数参数的函数
Aug 26 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
三种php连接access数据库方法
Nov 11 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
Codeigniter的dom类用法实例
Jun 26 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
php的无刷新操作实现方法分析
Feb 28 PHP
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
Apr 01 PHP
详解Laravel制作API接口
May 31 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
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
PHP 实现缩略图
2021/03/09 PHP
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
Python打印斐波拉契数列实例
2015/07/07 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
酒店服务实习自我鉴定
2013/09/22 职场文书
拓展训练激励口号
2014/06/17 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
企业财务管理制度范本
2015/08/04 职场文书
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技