PHP计算两个时间的差(秒 分 时 天 月 年)

我们工作中用到最多的就是查询或统计出两个时间差了,下面我就整理了了PHP计算两个时间的差几个例子,其实就可以统计秒 分 时 天 月 年,下面来看看例子.

两个时间之间月份差实例代码:

  1. $yourdate="2012-10-20";
  2. $yourdate_unix=strtotime($yourdate);
  3. echo (date("Y",$yourdate_unix)-date("Y"))*12+(date("m",$yourdate_unix)-date("m"));

例子1,代码如下:

  1. /*
  2. * 计算2个时间段的月份差
  3. * @param $st开始时间 $et结束时间(时间戳格式)
  4. * @return $total 返回的差值
  5. */
  6. function getMonthNum($st, $et)
  7. {
  8. $s_m = date('n', $st);
  9. $e_m = date('n', $et);
  10. $s_y = date('Y', $st);
  11. $e_y = date('Y', $et);
  12. $total = 13 - $s_m + ($e_y - $s_y - 1) * 12 + $e_m; //计算月份差
  13. return $total;
  14. }

例子2,代码如下:

  1. <?php
  2. $one = strtotime('2011-05-08 07:02:40');//开始时间 时间戳
  3. $tow = strtotime('2012-12-25 00:00:00');//结束时间 时间戳
  4. $cle = $tow - $one; //得出时间戳差值
  5. /* 这个只是提示
  6. echo ceil($cle/60); //得出一共多少分钟
  7. echo ceil($cle/3600); //得出一共多少小时
  8. echo ceil($cle/3600/24); //得出一共多少天
  9. */
  10. /*ceil()函数,即进一法取整*/
  11. $d = cell($cle/3600/24); //开源软件:phpfensi.com
  12. $h = cell(($cle%(3600*24))/3600); //%取余
  13. $m = cell(($cle%(3600*24))/60);
  14. echo "两个时间相差 $d 天 $h 小时 $m 分"
  15. ?>

例子3,代码如下:

  1. <?PHP
  2. /*
  3. *
  4. *函数功能:计算两个以YYYY-MM-DD为格式的日期,相差几天
  5. *
  6. */
  7. function getChaBetweenTwoDate($date1,$date2){
  8. $Date_List_a1=explode("-",$date1);
  9. $Date_List_a2=explode("-",$date2);
  10. $d1=mktime(0,0,0,$Date_List_a1[1],$Date_List_a1[2],$Date_List_a1[0]);
  11. $d2=mktime(0,0,0,$Date_List_a2[1],$Date_List_a2[2],$Date_List_a2[0]);
  12. $Days=round(($d1-$d2)/3600/24);
  13. return $Days;
  14. }
  15. echo getChaBetweenTwoDate('2010-08-11','2010-08-16');
  16. echo "<br>";
  17. echo getChaBetweenTwoDate('2010-08-16','2010-08-11');
  18. ?>

例子4,代码如下:

  1. <?php
  2. $startdate=”2010-12-11 11:40:00″;
  3. $enddate=”2012-12-12 11:45:09″;
  4. $date=floor((strtotime($enddate)-strtotime($startdate))/86400);
  5. $hour=floor((strtotime($enddate)-strtotime($startdate))%86400/3600);
  6. $minute=floor((strtotime($enddate)-strtotime($startdate))%86400/60);
  7. $second=floor((strtotime($enddate)-strtotime($startdate))%86400%60);
  8. echo $date.”天<br>”;
  9. echo $hour.”小时<br>”;
  10. echo $minute.”分钟<br>”;
  11. echo $second.”秒<br>”;
  12. ?>

例子四是我最喜欢的一个可以计算到天小时秒哦,当然具体的还是需要根据自己的需要了.