在社群動態、評論系統、訊息列表中,常見「剛剛」、「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}
";
}
}
實際專案中,建議封裝為完整的「相對時間」輸出函數,自動判斷最適合的單位(如:
並考慮快取、多語系等擴充需求。