因此,我當前的$ 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>
因此,我當前的$ 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>
我通常使用這個函數。像這樣使用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';
}
你需要做的是什麼都轉換日期以時間戳第一,從當前日期的。減去原職日期和再改回你想要的格式。作爲一個例子見下文。
$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的時間戳給出日期在幾秒鐘所以很容易計算,如果你需要的數學運算進行這項工作。