php时间差计算函数

2018-01-12  本文已影响0人  无未无不未

应用场景为文章内容具有评论功能模块,记录用户评论发表于多少秒前或分钟前等等。

文件名 test.php

/**
 * 时间差计算
 *
 * @param Timestamp $time 时间差
 * @return String
 */
function time2_units($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 ( $year > 0 ) {//大于一年显示年月日
            $elapse = date('Y/m/d',time()-$time);
            break;
        }
        else if ( $$u > 0 )
        {
            $elapse = $$u . $cn;
            break;
        }
    }
    return $elapse;
}
// 运行
time2_units('1501900700');

cli运行
php test.php

上一篇 下一篇

猜你喜欢

热点阅读