首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 實作「多久以前」人性化時間顯示功能

     編輯:PHP 綜合知識

需求場景

在社群動態、評論系統、訊息列表中,常見「剛剛」、「5 分鐘前」、「3 天前」等相對時間顯示,比固定格式更符合使用者閱讀習慣。

核心函數實作

以下函數可判斷給定時間戳是否超過指定間隔(支援秒、分、時、天、年):

function time_is_older_than($interval, $check_time) {
    $interval = strtolower($interval);
    $unit = substr(preg_replace('/[^a-z]/', '', $interval), 0, 1);
    $value = intval(preg_replace('/[^0-9]/', '', $interval));
    
    $seconds = 0;
    switch ($unit) {
        case 's': $seconds = $value; break;
        case 'm': $seconds = $value * 60; break;
        case 'h': $seconds = $value * 3600; break;
        case 'd': $seconds = $value * 86400; break;
        case 'y': $seconds = $value * 31536000; break; // 365 天
        default: die('未知的時間格式!');
    }
    
    return $check_time < (time() - $seconds);
}

使用範例

$timestamp = 1146722922; // 範例時間戳

// 判斷是否超過 30 分鐘
if (time_is_older_than('30m', $timestamp)) {
    echo '該時間超過 30 分鐘';
} else {
    echo '該時間在 30 分鐘內';
}

// 簡易檢查
$checks = ['10s', '200m', '2h', '4d', '1y'];
foreach ($checks as $check) {
    if (time_is_older_than($check, $timestamp)) {
        echo "超過 {$check}
"; } }

進階建議

實際專案中,建議封裝為完整的「相對時間」輸出函數,自動判斷最適合的單位(如:

  • < 60 秒 → 「剛剛」
  • < 60 分鐘 → 「X 分鐘前」
  • < 24 小時 → 「X 小時前」
  • < 30 天 → 「X 天前」
  • 其餘 → 顯示完整日期

並考慮快取、多語系等擴充需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved