在很多場合為了顯示出信息的及時性,一般會將時間顯示成“剛剛”,“5分鐘前”,“3小時前”等,而不是直接將時間打印出來。比如微博,SNS類應用就最長用到這個功能。而一般存儲在數據庫中的時間格式為 Unix時間戳,所以這裡記錄一個將 Unix時間戳 轉化為時間軸顯示的PHP函數。
函數比較簡單,直接看代碼就很好懂了。
<?php
date_default_timezone_set('PRC');
$date = "1351836000";
echo tranTime($date);
function transfer_time($time)
{
$rtime = date("m-d H:i",$time);
$htime = date("H:i",$time);
$time = time() - $time;
if ($time < 60)
{
$str = '剛剛';
}
elseif ($time < 60 * 60)
{
$min = floor($time/60);
$str = $min.'分鐘前';
}
elseif ($time < 60 * 60 * 24)
{
$h = floor($time/(60*60));
$str = $h.'小時前 '.$htime;
}
elseif ($time < 60 * 60 * 24 * 3)
{
$d = floor($time/(60*60*24));
if($d==1)
$str = '昨天 '.$rtime;
else
$str = '前天 '.$rtime;
}
else
{
$str = $rtime;
}
return $str;
}
?>
注意函數transfer_time()中的參數$time必須為Unix時間戳,如果不是請先用strtotime()將其轉換成Unix時間戳