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 相关文章推荐
dedecms中常见问题修改方法总结
Mar 21 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
php实现建立多层级目录的方法
Jul 19 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
php对象和数组相互转换的方法
May 12 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
Jan 30 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 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
无线电的诞生过程
2021/03/01 无线电
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
PHP循环结构实例讲解
2014/02/10 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
应届毕业生如何写求职信
2014/02/16 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
西游记读书笔记
2015/06/25 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL