[轉載]PHP 計算時間差

 

我們常常在網站上看到某篇文章發表於“3天前”,“5個月前”,“4年前”。下面這個函數就提供了計算這個時間差的功能。

<?php
/**
* 時間差計算
*
* @param Timestamp $time
* @return String Time Elapsed
* @author Shelley Shyan
* @copyright http://phparch.cn (Professional PHP Architecture)
*/
function time2Units ($time)
{
   
$year   = floor($time / 60 / 60 / 24 / 365);
   
$time  -= $year * 60 * 60 * 24 * 365;
   
$month  = floor($time / 60 / 60 / 24 / 30);
   
$time  -= $month * 60 * 60 * 24 * 30;
   
$week   = floor($time / 60 / 60 / 24 / 7);
   
$time  -= $week * 60 * 60 * 24 * 7;
   
$day    = floor($time / 60 / 60 / 24);
   
$time  -= $day * 60 * 60 * 24;
   
$hour   = floor($time / 60 / 60);
   
$time  -= $hour * 60 * 60;
   
$minute = floor($time / 60);
   
$time  -= $minute * 60;
   
$second = $time;
   
$elapse = '';

   
$unitArr = array('年'  =>'year', '個月'=>'month',  '周'=>'week', '天'=>'day',
                    
'小時'=>'hour', '分鐘'=>'minute', '秒'=>'second'
                    
);

    foreach (
$unitArr as $cn => $u )
    {
        if ( $
$u > 0 )
        {
           
$elapse = $$u . $cn;
            break;
        }
    }

    return
$elapse;
}

$past = 2052345678; // Some timestamp in the past
$now  = time();     // Current timestamp
$diff = $now - $past;

echo
'發表於' . time2Units($diff) . '前';
?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章