PHP將時間格式化幾天前、幾分鐘前等

phpde 9年前發布 | 2K 次閱讀 PHP 緩存

<?php

class DateFormat { private static $_DIFF_FORMAT = array( 'DAY' => '%s天前', 'DAY_HOUR' => '%s天%s小時前', 'HOUR' => '%s小時', 'HOUR_MINUTE' => '%s小時%s分前', 'MINUTE' => '%s分鐘前', 'MINUTE_SECOND' => '%s分鐘%s秒前', 'SECOND' => '%s秒前', );

/**
 * 友好格式化時間
 * 
 * @param int 時間
 * @param array $formats
 * @return string
 */
public static function diff($timestamp, $formats = null) 
{
    if ($formats == null) {
        $formats = self::$_DIFF_FORMAT;
    }
    /* 計算出時間差 */
    $seconds = time() - $timestamp;
    $minutes = floor($seconds / 60);
    $hours   = floor($minutes / 60);
    $days    = floor($hours / 24);

    if ($days > 0) {
        $diffFormat = 'DAY';
    } else {
        $diffFormat = ($hours > 0) ? 'HOUR' : 'MINUTE';
        if ($diffFormat == 'HOUR') {
            $diffFormat .= ($minutes > 0 && ($minutes - $hours * 60) > 0) ? '_MINUTE' : '';
        } else {
            $diffFormat = (($seconds - $minutes * 60) > 0 && $minutes > 0) 
                            ? $diffFormat.'_SECOND' : 'SECOND';
        }
    }

    $dateDiff = null;
    switch ($diffFormat) {
        case 'DAY':
            $dateDiff = sprintf($formats[$diffFormat], $days);
            break;
        case 'DAY_HOUR':
            $dateDiff = sprintf($formats[$diffFormat], $days, $hours - $days * 60);
            break;
        case 'HOUR':
            $dateDiff = sprintf($formats[$diffFormat], $hours);
            break;
        case 'HOUR_MINUTE':
            $dateDiff = sprintf($formats[$diffFormat], $hours, $minutes - $hours * 60);
            break;
        case 'MINUTE':
            $dateDiff = sprintf($formats[$diffFormat], $minutes);
            break;
        case 'MINUTE_SECOND':
            $dateDiff = sprintf($formats[$diffFormat], $minutes, $seconds - $minutes * 60);
            break;
        case 'SECOND':
            $dateDiff = sprintf($formats[$diffFormat], $seconds);
            break;
    }
    return $dateDiff;
}

}

echo DateFormat::diff('1310455823'); / 33分鐘47秒前 /</pre>

 本文由用戶 phpde 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!