首頁 >後端開發 >php教程 >如何在 PHP 中計算和格式化自某個日期以來經過的時間?

如何在 PHP 中計算和格式化自某個日期以來經過的時間?

Susan Sarandon
Susan Sarandon原創
2024-12-16 15:04:10121瀏覽

How to Calculate and Format Elapsed Time Since a Date in PHP?

在PHP 中查找自日期時間以來經過的時間

確定自特定日期和時間以來經過的時間在各種應用程序中非常有用,例如顯示事件發生以來的時間。在 PHP 中,有多種方法可以以使用者友好的方式計算和格式化經過的時間。

計算經過的時間

計算給定日期之間經過的時間time 和當前時間,您可以使用strtotime() 函數將日期時間的字串表示形式轉換為時間戳。然後可以從當前時間戳中減去時間戳,當前時間戳表示自 Unix 紀元(1970 年 1 月 1 日 UTC)以來的當前時間(以秒為單位)。

例如:

$time = strtotime('2010-04-28 17:25:43');
$elapsedTime = time() - $time;

格式化經過時間

將經過時間作為數字後秒,您可以以用戶友好的方式格式化它。常見的方法是將秒數轉換為分鐘、天或年等單位。您可以使用循環迭代單位清單及其對應的秒數,然後傳回適當的單位及其值。

例如,以下函數計算並格式化經過的時間:

function humanTiming($time) {
    $tokens = array (
        31536000 => 'year',
        2592000 => 'month',
        604800 => 'week',
        86400 => 'day',
        3600 => 'hour',
        60 => 'minute',
        1 => 'second'
    );

    foreach ($tokens as $unit => $text) {
        if ($time < $unit) continue;
        $numberOfUnits = floor($time / $unit);
        return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
    }
}

用法範例

要使用此函數,您只需將時間戳記作為參數:

$time = strtotime('2010-04-28 17:25:43');
echo 'Event happened '.humanTiming($time).' ago';

這將以適合用戶顯示的格式輸出經過的時間,例如「事件發生在4 天前」或「事件發生在 1 分鐘前」。

以上是如何在 PHP 中計算和格式化自某個日期以來經過的時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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