2014-12-05 67 views
0

因此,我當前的$ item ['date']函數以Y-m-d H:i:s格式獲取帖子的時間和日期。減去發佈多少分鐘前的時間

我想顯示帖子張貼的分鐘數,或者如果它是超過24小時,多少天前它是張貼或像0天和20小時前?類似的東西

爲什麼minus運算符在這裏工作我的代碼?

我當前的代碼:

<p><?php echo date('Y-m-d H:i:s') - $item['date'] ?> minutes ago</p> 

回答

0

我通常使用這個函數。像這樣使用time_ago('2014-12-03 16:25:26')

function time_ago($date){ 
    $retval = NULL; 
    $granularity=2; 
    $date = strtotime($date); 
    $difference = time() - $date; 
    $periods = array('decade' => 315360000, 
     'year' => 31536000, 
     'month' => 2628000, 
     'week' => 604800, 
     'day' => 86400, 
     'hour' => 3600, 
     'minute' => 60, 
     'second' => 1); 

    foreach ($periods as $key => $value) 
    { 
     if ($difference >= $value) 
     { 
      $time = round($difference/$value); 
      $difference %= $value; 
      $retval .= ($retval ? ' ' : '').$time.' '; 
      $retval .= (($time > 1) ? $key.'s' : $key); 
      $granularity--; 
     } 
     if ($granularity == '0') { break; } 
    } 
    return $retval.' ago';  
} 
0

你需要做的是什麼都轉換日期以時間戳第一,從當前日期的。減去原職日期和再改回你想要的格式。作爲一個例子見下文。

$now = time(); 
$datePosted = strtotime($item['date']); 

$timePassed = $now - $datePosted; 

$agoMinutes = $timePassed/60; //this will give you how many minutes passed 
$agoHours = $agoMinutes/60; //this will give you how many hours passed 
$agoDays = $agoHours/24; // this will give you how many days passed 

等等......

PHP的時間戳給出日期在幾秒鐘所以很容易計算,如果你需要的數學運算進行這項工作。