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 判断常量,变量和函数是否存在
Apr 26 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
PHP可逆加密/解密函数分享
Sep 25 PHP
php构造函数实例讲解
Nov 13 PHP
用PHP来计算某个目录大小的方法
Apr 01 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
Jun 26 PHP
php中动态调用函数的方法
Mar 16 PHP
PHP附件下载中文名称乱码的解决方法
Dec 17 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 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动态生成虚拟现实VRML网页
2006/10/09 PHP
PHP Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
webpack常用构建优化策略小结
2019/11/21 Javascript
jQuery实现评论模块
2020/08/19 jQuery
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
Python struct.unpack
2008/09/06 Python
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
简单了解python的内存管理机制
2019/07/08 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
市场开发与营销专业求职信
2013/12/31 职场文书
投资协议书范本
2014/04/21 职场文书
学生检讨书怎么写
2015/05/07 职场文书
导游词之五台山
2019/10/11 职场文书