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 相关文章推荐
用DBSQL类加快开发MySQL数据库程序的速度
Oct 09 PHP
apache rewrite_module模块使用教程
Jan 10 PHP
php高级编程-函数-郑阿奇
Jul 04 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
Aug 06 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
Jan 14 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
php按单词截取字符串的方法
Apr 07 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
PHP设置images目录不充许http访问的方法
Nov 01 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 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
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
js获取内联样式的方法
2015/01/27 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
Ruby元编程基础学习笔记整理
2016/07/02 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
人力资源管理专业应届生求职信
2013/09/28 职场文书
初一科学教学反思
2014/01/27 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技