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 相关文章推荐
PHP4实际应用经验篇(4)
Oct 09 PHP
phpmyadmin 常用选项设置详解版
Mar 07 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 PHP
php中动态变量用法实例
Jun 10 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
CI框架常用函数封装实例
Nov 21 PHP
PHP基于面向对象封装的分页类示例
Mar 15 PHP
PHP的介绍以及优势详细分析
Sep 05 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
Nov 04 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中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
jquery实现居中弹出层代码
2010/08/25 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
微信小程序实现录音功能
2019/11/22 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Python 实现自动导入缺失的库
2019/10/29 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
python和php哪个容易学
2020/06/19 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
电大物流学生的自我评价
2013/10/25 职场文书
自荐信不宜过于夸大
2013/11/06 职场文书
园林设计师自荐信
2013/11/18 职场文书
雪山饭庄的创业计划书范文
2014/01/18 职场文书
九年级历史教学反思
2014/01/27 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
网络编辑求职信
2014/04/30 职场文书
软环境建设心得体会
2014/09/09 职场文书
2015年春节标语口号
2014/12/09 职场文书
工作自我评价范文
2015/03/05 职场文书
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle