PHP: 타임스탬프를 상대 날짜/시간으로 변환
상대 타임스탬프는 특정 시점과 현재 순간 사이에 경과된 시간을 나타냅니다. 특히 과거에 발생했거나 미래에 발생할 이벤트의 경우 절대 타임스탬프보다 더 사용자 친화적인 시간 표현을 제공합니다.
PHP에서 상대 타임스탬프를 생성하려면 다음 함수 사용을 고려하세요.
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); } } }
이 함수는 타임스탬프를 받아들이고 상대 타임스탬프를 출력합니다. 과거 및 미래 타임스탬프를 모두 처리하고 "1시간 전" 또는 "2일 후"와 같은 다양한 형식으로 출력을 제공합니다.
위 내용은 PHP에서 타임스탬프를 상대 날짜/시간으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!