首頁 >後端開發 >php教程 >如何在 PHP 中從 Unix 時間戳記產生相對日期/時間字串?

如何在 PHP 中從 Unix 時間戳記產生相對日期/時間字串?

DDD
DDD原創
2024-11-26 21:55:10692瀏覽

How Can I Generate Relative Date/Time Strings from Unix Timestamps in PHP?

從PHP 的時間戳產生相對日期/時間

答案

下面的函數提供了一種全面的轉換方法Unix 時間戳(使用time() 函數獲得)相對日期/時間格式,考慮過去和未來。它產生的輸出例如:

  • 2 週前
  • 1 小時 60 分鐘前
  • 15分54秒ago

  • 10分15秒後



函數採用一系列條件語句來決定適當的時間表示基於當前時間和當前時間之間的差異時間戳記:
<p>function time2str($ts)</p>{<p><br><br>}</p>
// Handle syntax variations
if(!ctype_digit($ts)) $ts = strtotime($ts);

// Calculate the difference between now and the timestamp
$diff = time() - $ts;

// Check for exact matches to simplify handling
if($diff == 0) return 'now';

// Handle past timestamps
if($diff > 0)
{
    // Calculate day difference
    $day_diff = floor($diff / 86400);

    // Format past time intervals
    switch(true)
    {
        case ($day_diff == 0):    return constructPastInterval($diff); // Hours, minutes, seconds
        case ($day_diff == 1):    return 'Yesterday';
        case ($day_diff < 7):    return $day_diff . ' days ago';
        case ($day_diff < 31):   return ceil($day_diff / 7) . ' weeks ago';
        case ($day_diff < 60):   return 'last month';
        default:               return date('F Y', $ts);
    }
}
// Handle future timestamps
else
{
    // Calculate absolute difference
    $diff = abs($diff);
    
    // Calculate day difference and format future time intervals based on logic similar to the past case.
}

ConstructionPastInterval() 函數未在此回應中顯示,但處理過去間隔的格式(小時、分鐘、秒)。

此函數提供了一個強大且通用的解決方案,用於從時間戳生成相對日期/時間表示,無需多個腳本或複雜的自訂編碼。

以上是如何在 PHP 中從 Unix 時間戳記產生相對日期/時間字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn