Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjana Tarikh dan Masa Relatif Boleh Dibaca Manusia daripada Cap Waktu Unix dalam PHP?
Dalam PHP, menukar cap masa Unix kepada rentetan tarikh/masa relatif yang boleh dibaca manusia ialah tugas biasa. Walau bagaimanapun, mencipta skrip fleksibel untuk mengendalikan kedua-dua penukaran masa lalu dan masa hadapan boleh menjadi mencabar.
Fungsi berikut, time2str, menangani keperluan ini dengan menukar cap masa kepada rentetan tarikh/masa relatif seperti "2 minggu lalu" atau "selepas 10 minit dan 15 saat."
function time2str($ts) { // Convert string timestamp to integer if (!ctype_digit($ts)) { $ts = strtotime($ts); } $diff = time() - $ts; // Handle present, past, and future conversions if ($diff == 0) { return 'now'; } elseif ($diff > 0) { // Past: "X days/weeks/months ago" $day_diff = floor($diff / 86400); switch ($day_diff) { case 0: return relativeMinutes($diff); case 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); } } else { // Future: "after X days/weeks/months" $diff = abs($diff); $day_diff = floor($diff / 86400); switch ($day_diff) { case 0: return relativeMinutes($diff, true); case 1: return 'Tomorrow'; case $day_diff < 4: return date('l', $ts); case $day_diff < 7 + (7 - date('w')) : return 'next week'; case ceil($day_diff / 7) < 4: return 'in ' . ceil($day_diff / 7) . ' weeks'; case date('n', $ts) == date('n') + 1: return 'next month'; default: return date('F Y', $ts); } } } // Helper to generate relative minute/second strings function relativeMinutes($diff, $future = false) { if ($diff < 60) { return 'just now'; } else if ($diff < 120) { return '1 minute' . (($future) ? ' ago' : ''); } else { return floor($diff / 60) . ' minutes' . (($future) ? ' ago' : ''); } }
Fungsi ini mengendalikan kes tepi seperti "sebentar tadi" dan "dalam 1 minit." Ia juga menyediakan rentetan relatif yang berbeza untuk tarikh lalu dan akan datang, menjadikannya fleksibel untuk digunakan dalam pelbagai aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Tarikh dan Masa Relatif Boleh Dibaca Manusia daripada Cap Waktu Unix dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!