2025.12.24 | 조회 : 27

게시판이나 리스트 화면에서는 정확한 날짜보다 사용자가 체감하기 쉬운 상대 시간 표시가 더 적합한 경우가 많습니다. 아래 PHP 코드는 등록 시각을 기준으로 하루, 일주일 단위로 시간을 가공해 출력하는 방식입니다.
$OndDay = 60*60*24;
하루를 초 단위로 환산합니다. 이후 경과 시간을 일(day) 단위로 계산하는 기준 값으로 사용됩니다.
$RangeDay = NOW() - $entry->add_time;
현재 시각과 데이터 등록 시각의 차이를 초 단위로 계산합니다. 이 값이 실제로 얼마나 시간이 지났는지를 판단하는 핵심입니다.
$Day = floor($RangeDay / $OndDay);
초 단위 경과 시간을 하루 기준으로 나눠 실제 지난 날짜 수를 계산합니다. 소수점은 버려 정확한 일 단위로 처리합니다.
if($Day < 1){
$AddTime = date('H:i:s', $entry->add_time);
}
등록된 지 하루가 지나지 않았다면 “몇 시간 전” 대신 실제 등록 시간을 그대로 보여줍니다. 실시간성이 중요한 화면에 적합한 방식입니다.
if($Day < 7){
$AddTime = $Day.'일';
}
하루 이상 일주일 미만일 경우 “3일”, “5일”처럼 단순한 일 단위로 표시합니다. 목록 화면에서 가독성이 좋아집니다.
$AddTime = floor($Day / 7).'주';
오래된 데이터는 주 단위로 묶어 표시합니다. 날짜 문자열이 길어지는 문제를 방지하고 UI를 깔끔하게 유지할 수 있습니다.