Heim >Backend-Entwicklung >PHP-Tutorial >php计算日期相差天数(任意时间与当前时间的时间差)

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

WBOY
WBOYOriginal
2016-07-25 08:51:363199Durchsuche
  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. ?>
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn