PHP: Menukar Cap Masa kepada Tarikh/Masa Relatif
Cap masa relatif menunjukkan masa berlalu antara titik masa tertentu dan detik semasa. Ia menyediakan perwakilan masa yang lebih mesra pengguna daripada cap masa mutlak, terutamanya untuk peristiwa yang berlaku pada masa lalu atau akan berlaku pada masa hadapan.
Untuk menjana cap masa relatif dalam PHP, pertimbangkan untuk menggunakan fungsi berikut:
function time2str($ts) { if (!ctype_digit($ts)) { $ts = strtotime($ts); } $diff = time() - $ts; if ($diff == 0) { return 'now'; } elseif ($diff > 0) { // Past timestamps $day_diff = floor($diff / 86400); if ($day_diff == 0) { if ($diff < 60) { return 'just now'; } elseif ($diff < 120) { return '1 minute ago'; } elseif ($diff < 3600) { return floor($diff / 60) . ' minutes ago'; } elseif ($diff < 7200) { return '1 hour ago'; } elseif ($diff < 86400) { return floor($diff / 3600) . ' hours ago'; } } elseif ($day_diff == 1) { return 'Yesterday'; } elseif ($day_diff < 7) { return $day_diff . ' days ago'; } elseif ($day_diff < 31) { return ceil($day_diff / 7) . ' weeks ago'; } elseif ($day_diff < 60) { return 'last month'; } else { return date('F Y', $ts); } } else { // Future timestamps $diff = abs($diff); $day_diff = floor($diff / 86400); if ($day_diff == 0) { if ($diff < 120) { return 'in a minute'; } elseif ($diff < 3600) { return 'in ' . floor($diff / 60) . ' minutes'; } elseif ($diff < 7200) { return 'in an hour'; } elseif ($diff < 86400) { return 'in ' . floor($diff / 3600) . ' hours'; } } elseif ($day_diff == 1) { return 'Tomorrow'; } elseif ($day_diff < 4) { return date('l', $ts); } elseif ($day_diff < 7 + (7 - date('w'))) { return 'next week'; } elseif (ceil($day_diff / 7) < 4) { return 'in ' . ceil($day_diff / 7) . ' weeks'; } elseif (date('n', $ts) == date('n') + 1) { return 'next month'; } else { return date('F Y', $ts); } } }
Fungsi ini menerima cap masa dan mengeluarkan cap masa relatif. Ia mengendalikan kedua-dua cap masa lalu dan masa hadapan, dan ia menyediakan output dalam pelbagai format, seperti "1 jam yang lalu" atau "dalam 2 hari."
Atas ialah kandungan terperinci Bagaimana untuk Menukar Cap Masa kepada Tarikh/Masa Relatif dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!