2011-05-16 31 views
0
function timeSpent($date_created, $endingDay) 
    { 
     $diff = abs(strtotime($date_created) - strtotime(date("Y-m-d H:i:s"))); 
     $years = floor($diff/(365 * 60 * 60 * 24)); 
     $months = floor(($diff - $years * 365 * 60 * 60 * 24)/(30 * 60 * 60 * 24)); 
     $days = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24)/(60 * 60 * 24)); 
     $hours = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24)/(60 * 60)); 
     $minuts = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24 - $hours * 60 * 60)/60); 
     $seconds = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24 - $hours * 60 * 60 - $minuts * 60)); 
      $week = floor($days/7); 
      $day = $days % 7; 
      if ($week < 1 && $week != 0) { 
      return $days . " days - " . $hours . " hrs - " . $minuts . "- min" . $week; 
      } elseif ($week == 0) { 
       if ($days != 0) { 
        return $days . "days " . $hours . "hours ago"; 
       } elseif ($hours != 0) { 
        return $hours . "hours " . $minuts . "minute ago"; 
       } elseif ($minuts) { 
        return $minuts . "minute " . $seconds . "seconds ago"; 
       } else { 
        return "few seconds ago"; 
       } 
      } else { 
       $stamp = strtotime($date_created); 
       return date("F d Y", $stamp); 
      } 
     } 
    } 

我正在使用此功能,它不能正常工作。如何打印日期就像Eg:2小時前,3月10

+0

什麼是輸出? – Jordonias 2011-05-16 03:05:41

+0

我測試了它與四月份,但它返回2天24小時前。 – user737767 2011-05-16 03:09:33

+0

假設你沒有寫這個功能,也許解決方案是使用另一個... http://www.zachleat.com/web/php-pretty-date/ – 2011-05-16 03:28:16

回答

0

我注意到的一個錯誤是,如果您要進入4月15日,可能會有1個月和0周。這會導致只輸出日期和時間。更改以下內容。

} elseif ($week == 0) { 

} elseif ($week == 0 && $months == 0 && $years == 0) { 

這可能取決於你輸入的日期會導致您的問題。

+0

謝謝你的傢伙它的工作很棒......你的工作對我更有幫助再次感謝你 – user737767 2011-05-16 03:32:06

+0

不客氣,很高興我能幫上忙。 – Jordonias 2011-05-16 03:46:18

相關問題