Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menukar Cap Waktu PHP kepada Rentetan 'Masa Lalu' yang Boleh Dibaca Manusia?

Bagaimana untuk Menukar Cap Waktu PHP kepada Rentetan 'Masa Lalu' yang Boleh Dibaca Manusia?

Barbara Streisand
Barbara Streisandasal
2024-12-23 13:28:05821semak imbas

How to Convert PHP Timestamps to Human-Readable

Menukar Cap Masa kepada Masa Lalu yang Boleh Dibaca Manusia dalam PHP

Dalam PHP, anda boleh menukar cap masa kepada rentetan masa berlalu menggunakan fungsi time_elapsed_string().

Fungsi Definisi

function time_elapsed_string($datetime, $full = false) {
    // Get the current date and time
    $now = new DateTime;

    // Create a DateTime object from the input timestamp
    $ago = new DateTime($datetime);

    // Calculate the difference between the current time and the input timestamp
    $diff = $now->diff($ago);

    // Convert weeks and days to days
    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;

    // Create an array of time units and their corresponding English names
    $string = [
        'y' => 'year',
        'm' => 'month',
        'w' => 'week',
        'd' => 'day',
        'h' => 'hour',
        'i' => 'minute',
        's' => 'second',
    ];

    // Iterate through the time units and add them to the output string if they are greater than 0
    foreach ($string as $k => &$v) {
        if ($diff->$k) {
            $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
        } else {
            unset($string[$k]);
        }
    }

    // If the `$full` parameter is false, only return the first time unit
    if (!$full) $string = array_slice($string, 0, 1);

    // Return the formatted time elapsed string
    return $string ? implode(', ', $string) . ' ago' : 'just now';
}

Penggunaan

echo time_elapsed_string('2013-05-01 00:22:35'); // Output: 4 months ago
echo time_elapsed_string('@1367367755');          // Output: 4 months ago
echo time_elapsed_string('2013-05-01 00:22:35', true); // Output: 4 months, 2 weeks, 3 days, 1 hour, 49 minutes, 15 seconds ago

Atas ialah kandungan terperinci Bagaimana untuk Menukar Cap Waktu PHP kepada Rentetan 'Masa Lalu' yang Boleh Dibaca Manusia?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn