php计算日期相差天数(任意时间与当前时间的时间差)

原创
2016-07-25 08:51:36 2714浏览
  1. function count_days($a,$b){
  2. $a_dt=getdate($a);
  3. $b_dt=getdate($b);
  4. $a_new=mktime(12,0,0,$a_dt['mon'],$a_dt['mday'],$a_dt['year']);
  5. $b_new=mktime(12,0,0,$b_dt['mon'],$b_dt['mday'],$b_dt['year']);
  6. return round(abs($a_new-$b_new)/86400);
  7. }
  8. //今天与2008年10月11日相差多少天
  9. $date1=strtotime(time());
  10. $date1=strtotime('10/11/2008');
  11. $result=count_days($date1,$date2);
  12. echo $result;
  13. ?>
复制代码

方法2:

  1. //今天与2008年9月9日相差多少天
  2. $Date_1=date("Y-m-d");
  3. $Date_2="2008-10-11";
  4. $d1=strtotime($Date_1);
  5. $d2=strtotime($Date_2);
  6. $Days=round(($d2-$d1)/3600/24);
  7. echo "今天与2008年10月11日相差".$Days."天";
  8. ?>
复制代码

PHP获得任意时间与当前时间的时间差

代码:

  1. #功能:获得任意时间与当前时间的时间差
  2. function QueryDays($datestr){
  3. #格式化时间
  4. $da=preg_split("/(-| |:)/i",$datestr);
  5. $nowyear=date("Y");
  6. $nowmon=date("n");
  7. $nowday=date("d");
  8. $nowtimes=mktime(0,0,0,$nowmon,$nowday,$nowyear);
  9. $pdtimes= mktime(0,0,0,$nowmon,$nowday,$nowyear-1);
  10. $bjtimes= mktime(0,0,0,$da[1],$da[2],$da[0]);
  11. #判断所给出的时间是不是在一年内
  12. if ($bjtimes>=$pdtimes and $bjtimesreturn (floor(strftime("%j",mktime(0,0,0,$nowmon,$nowday,$nowyear)-mktime($da[3],$da[4],$da[5],$da[1],$da[2],$da[0]))));
  13. }else{
  14. $loop=$nowyear-$da[0];
  15. $totaldays=(floor(strftime("%j",mktime(0,0,0,$nowmon,$nowday,$nowyear)-mktime(0,0,0,1,1,$nowyear))));
  16. for($i=1;$ifor($j=12;$j>=1;$j--){
  17. if ($da[0]==$nowyear-$i and $da[1]==$j){
  18. $days=MonDays($nowyear-$i,$j);
  19. return $totaldays+=$days-$da[2];
  20. break;
  21. }else{
  22. $days=MonDays($nowyear-$i,$j);
  23. $totaldays+=$days;
  24. }//end else
  25. }//end for
  26. }//end for
  27. }//end else
  28. }//end function
  29. #取得月分的天数
  30. function MonDays($year,$month){
  31. switch ($month){
  32. case "1":
  33. case "3":
  34. case "5":
  35. case "7":
  36. case "8":
  37. case "10":
  38. case "12": $days=31;break;
  39. case "4":
  40. case "6":
  41. case "9":
  42. case "11": $days=30;break;
  43. case "2":
  44. if (checkdate($month,29,$year)){
  45. $days=29;
  46. }else{
  47. $days=28;
  48. }//end else
  49. break;
  50. }//end switch
  51. return $days;
  52. }//end function
  53. $datestr="2002-1-14 9:47:20";
  54. echo QueryDays($datestr);
  55. ?>
复制代码

PHP计算两个时间相差的年月时分秒

PHP如何计算两个时间相差几年几月几时几分几秒

先将两个时间转化为时间戳,然后相减得到两个时间相差的秒数,最后进行一些算术就可以得到两个时间相差的年月日时分秒了。

代码:

  1. $time1 = "2008-6-15 11:49:59"; //第一个时间
  2. $time2 = "2007-5-5 12:53:28"; //第二个时间
  3. $t1 = strtotime($time1);
  4. $t2 = strtotime($time2);
  5. $t12 = abs($t1-$t2);
  6. $start = 0;
  7. $string = "两个时间相差:";
  8. $y = floor($t12/(3600*24*360));
  9. if($start || $y )
  10. {
  11. $start = 1;
  12. $t12 -= $y*3600*24*360;
  13. $string .= $y."年";
  14. }
  15. $m = floor($t12/(3600*24*31));
  16. if($start || $m)
  17. {
  18. $start = 1;
  19. $t12 -= $m*3600*24*31;
  20. $string .= $m."月";
  21. }
  22. $d = floor($t12/(3600*24));
  23. if($start || $d)
  24. {
  25. $start = 1;
  26. $t12 -= $d*3600*24;
  27. $string .= $d."天";
  28. }
  29. $h = floor($t12/(3600));
  30. if($start || $h)
  31. {
  32. $start = 1;
  33. $t12 -= $h*3600;
  34. $string .= $h."时";
  35. }
  36. $s = floor($t12/(60));
  37. if($start || $s)
  38. {
  39. $start = 1;
  40. $t12 -= $s*60;
  41. $string .= $s."分";
  42. }
  43. $string .= "{$t12}秒";
  44. echo $string;
  45. ?>
复制代码


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。