php把时间计算成几分钟前,几小时前,几天前的函数

林继 PHP 技术 3,324 共写了29个字 (2011-11-01 20:09:24) 没有评论 打印 扫描二维码 百度已收录
  1. <?php
  2. //计算时间,规则如下,如果一小时内,显示分钟,如果大于1小时小于1天显示小时,如果大于天且小于3天,显示天数,否则显示日期时间
  3. function time_aaa($s){ 
  4.     $m=0;$hr=0;$d=0;$td="now"; 
  5.     if($s>59) { 
  6.         $m = (int)($s/60); 
  7.         $s = $s-($m*60); // sec left over 
  8.         $td = "$m 秒钟前"; 
  9.     } 
  10.     if($m>59){ 
  11.         $hr = (int)($m/60); 
  12.         $m = $m-($hr*60); // min left over 
  13.         $td = "$hr 小时"; if($hr>1) $td .= ""; 
  14.         if($m>0) $td .= ", $m 分钟前"; 
  15.     } 
  16.     if($hr>23){ 
  17.         $d = (int)($hr/24); 
  18.         $hr = $hr-($d*24); // hr left over 
  19.         $td = "$d 天"; if($d>1) $td .= ""; 
  20.         if($d<3){ 
  21.             if($hr>0) $td .= ", $hr 小时前"; if($hr>1) $td .= ""; 
  22.         } 
  23.  
  24.     } 
  25.     return $td; 
  26. } 
  27.  
  28. //调用方法
  29.  
  30. $now_time = date("Y-m-d H:i:s",time());
  31. $timestamp1 = strtotime($now_time); //转换成Unix 时间戳
  32. $timestamp2 = $row['time'];//另一个变量,是Unix 时间戳
  33. $rd = $timestamp1-$timestamp2;
  34.  
  35.  // has to be a positive result 
  36.  if($rd > 259200){ 
  37.       $td = date("Y-m-d H:i:s",$row['time']); 
  38.         } else
  39. 		{
  40. 			$td = time_aaa($rd);
  41. 		}
  42. $td .= ($td=="now")? "":""; // in this example "ago" 
  43. echo $td; // 输出
  44.  
  45. ?>

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >