Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menukar Cap Masa kepada Rentetan 'Masa Lalu' dalam PHP?

Bagaimanakah Saya Boleh Menukar Cap Masa kepada Rentetan 'Masa Lalu' dalam PHP?

Linda Hamilton
Lepaskan: 2024-12-31 07:58:22
asal
269 orang telah melayarinya

How Can I Convert Timestamps to

Menukar Cap Masa kepada Rentetan Masa Lalu dalam PHP

Menukar cap masa kepada rentetan masa relatif boleh berguna untuk memaparkan maklumat dalam format yang lebih mesra pengguna. Dalam PHP, terdapat beberapa fungsi dan pendekatan yang boleh anda gunakan untuk mencapai ini.

Satu pendekatan popular melibatkan penggunaan fungsi strtotime() untuk menukar perwakilan rentetan cap masa ke dalam format cap masa Unixnya (bilangan saat sejak zaman Unix, 1 Januari 1970 00:00:00 UTC). Anda kemudiannya boleh menggunakan fungsi seperti gmdate() atau date() untuk memformat cap waktu Unix, yang boleh memberi manfaat jika cap masa anda dalam format yang tidak konvensional.

Sebagai alternatif, anda boleh menggunakan kelas DateTime() untuk menukar cap masa atau rentetan tarikh ke dalam objek PHP DateTime. Kelas DateTime menyediakan pelbagai kaedah untuk memanipulasi dan memformat tarikh dan masa. Dengan membandingkan objek DateTime yang mewakili cap masa dengan masa semasa, anda boleh mengira masa berlalu dan membina rentetan masa relatif.

Berikut ialah contoh fungsi yang menggunakan kelas DateTime untuk menukar cap masa kepada rentetan masa lalu :

function time_elapsed_string($datetime, $full = false) {
    $now = new DateTime;
    $ago = new DateTime($datetime);
    $diff = $now->diff($ago);

    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;

    $string = array(
        'y' => 'year',
        'm' => 'month',
        'w' => 'week',
        'd' => 'day',
        'h' => 'hour',
        'i' => 'minute',
        's' => 'second',
    );
    foreach ($string as $k => &$v) {
        if ($diff->$k) {
            $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
        } else {
            unset($string[$k]);
        }
    }

    if (!$full) $string = array_slice($string, 0, 1);
    return $string ? implode(', ', $string) . ' ago' : 'just now';
}
Salin selepas log masuk

Fungsi ini mengambil cap masa atau rentetan tarikh sebagai hujah dan mengembalikan rentetan masa relatif. Dengan menetapkan argumen $full kepada benar, anda boleh mendapatkan rentetan yang lebih terperinci yang merangkumi semua unit masa yang berkaitan. Jika tidak, ia hanya akan merangkumi unit masa yang berkaitan yang terbesar.

Contoh penggunaan:

echo time_elapsed_string('2013-05-01 00:22:35');
echo time_elapsed_string('@1367367755'); # timestamp input
echo time_elapsed_string('2013-05-01 00:22:35', true);
Salin selepas log masuk

Output:

4 months ago
4 months ago
4 months, 2 weeks, 3 days, 1 hour, 49 minutes, 15 seconds ago
Salin selepas log masuk

Fungsi ini menyediakan cara yang mudah dan boleh disesuaikan untuk menukar cap masa kepada rentetan masa relatif dalam PHP. Anda boleh menggunakannya untuk memaparkan maklumat sensitif masa dengan cara yang jelas dan ringkas untuk pengguna anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Cap Masa kepada Rentetan 'Masa Lalu' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan