Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengira dan Memformat Masa Berlalu Sejak Tarikh dalam PHP?

Bagaimana untuk Mengira dan Memformat Masa Berlalu Sejak Tarikh dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-16 15:04:10127semak imbas

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

Mencari Masa Berlalu Sejak Masa Tarikh dalam PHP

Menentukan masa berlalu sejak tarikh dan masa tertentu boleh berguna dalam pelbagai aplikasi, seperti memaparkan masa sejak sesuatu peristiwa berlaku. Dalam PHP, terdapat cara untuk mengira dan memformat masa berlalu dengan cara yang mesra pengguna.

Mengira Masa Berlalu

Untuk mengira masa berlalu antara tarikh tertentu masa dan masa semasa, anda boleh menggunakan fungsi strtotime() untuk menukar perwakilan rentetan masa tarikh kepada cap waktu. Cap masa kemudiannya boleh ditolak daripada cap masa semasa, yang mewakili masa semasa dalam saat sejak zaman Unix (1 Januari 1970 UTC).

Contohnya:

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

Memformat Masa Berlalu

Sebaik sahaja anda mempunyai masa berlalu sebagai bilangan saat, anda boleh memformatnya dengan cara yang mesra pengguna. Pendekatan biasa ialah menukar saat kepada unit seperti minit, hari atau tahun. Anda boleh menggunakan gelung untuk melelakan senarai unit dan bilangan saat yang sepadan, kemudian kembalikan unit yang sesuai dan nilainya.

Sebagai contoh, fungsi berikut mengira dan memformat masa berlalu:

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':'');
    }
}

Contoh Penggunaan

Untuk menggunakan fungsi ini, anda hanya boleh menghantar cap masa sebagai hujah:

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

Ini akan mengeluarkan masa berlalu dalam format yang sesuai untuk paparan pengguna, seperti "Peristiwa berlaku 4 hari lalu" atau "Peristiwa berlaku 1 minit lalu".

Atas ialah kandungan terperinci Bagaimana untuk Mengira dan Memformat Masa Berlalu Sejak Tarikh dalam PHP?. 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