当前位置:首页 > PHP教程 > php日期 > 列表

php计算两个日期时间差(返回年、月、日)

发布:smiling 来源: PHP粉丝网  添加日期:2021-02-22 16:06:07 浏览: 评论:0 

这篇文章主要介绍了php计算两个日期时间差(返回年、月、日),实现了类似微博中的多少天、多少月、多少前前功能,需要的朋友可以参考下。

在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等。在文章中,简单地举例介绍了PHP中如何计算两个日期相差 年、月、日。

  1. <?php  
  2.    
  3. /**  
  4.  +----------------------------------------------------------  
  5.  * 功能:计算两个日期相差 年 月 日  
  6.  +----------------------------------------------------------  
  7.  * @param date   $date1 起始日期  
  8.  * @param date   $date2 截止日期日期  
  9.  +----------------------------------------------------------  
  10.  * @return array        
  11.  +----------------------------------------------------------  
  12.  */ 
  13. function DiffDate($date1$date2) {  
  14.   if (strtotime($date1) > strtotime($date2)) {  
  15.     $ymd = $date2;  
  16.     $date2 = $date1;  
  17.     $date1 = $ymd;  
  18.   }  
  19.   list($y1$m1$d1) = explode('-'$date1);  
  20.   list($y2$m2$d2) = explode('-'$date2);  
  21.   $y = $m = $d = $_m = 0;  
  22.   $math = ($y2 - $y1) * 12 + $m2 - $m1;  
  23.   $y = round($math / 12);  
  24.   $m = intval($math % 12);  
  25.   $d = (mktime(0, 0, 0, $m2$d2$y2) - mktime(0, 0, 0, $m2$d1$y2)) / 86400;  
  26.   if ($d < 0) {  
  27.     $m -= 1;  
  28.     $d += date('j'mktime(0, 0, 0, $m2, 0, $y2));  
  29.   }  
  30.   $m < 0 && $y -= 1;  
  31.   return array($y$m$d);  
  32. }  
  33. ?> 

Tags: php计算两个日期时间差

分享到: