2013-01-03 58 views
-1
function timeago($ptime) { 
    $etime = time() - $ptime; 

    if ($etime < 1) { 
     return '0 seconds'; 
    } 

    $a = array(12 * 30 * 24 * 60 * 60 => 'year', 
        30 * 24 * 60 * 60  => 'month', 
        24 * 60 * 60   => 'day', 
        60 * 60     => 'hour', 
        60      => 'minute', 
        1      => 'second' 
        ); 

    foreach ($a as $secs => $str) { 
     $d = $etime/$secs; 
     if ($d >= 1) { 
      $r = round($d); 
      return $r . ' ' . $str . ($r > 1 ? 's' : ''); 
     } 
    } 
} 

讓我說我有這個功能,我有一個SQL結果,給我一個UNIX格式的多個時間戳的數組。使用while循環,我怎樣才能使用這個函數爲每個時間戳,所以每個循環結果將包含每個SQL UNIX時間戳的時間?SQL,而功能

+1

實際學習編程PHP的時間。如果你首先知道如何編寫一個while循環,那麼問題本身就會回答。 http://php.net/manual/en/function.array-map.php也可能是有趣的。 –

+2

這與SQL有什麼關係? –

+0

請發佈查詢。您可以完成數據庫中的所有工作。 –

回答

0

您可以使用DateTime類。

function timeAgo($ptime){ 
    $date1 = DateTime::createFromFormat("s", $ptime);//HOPE THIS WILL WORK 
    $date2 = new DateTime("now"); 
    $interval = $date1->diff($date2); 
    $diff = $interval->format('%y-%m-%d'); 
    return $diff; 
} 

調用在每次迭代該方法,並傳遞從DB的時間戳。