custom_timesince
•
humanize의 timesince 필터를 적용했을 때, 9시간, 36분 같이 시간, 분으로 표시되는 문제가 있습니다.
•
이에 조금 더 깔끔한 시간 형식 표기를 위해 커스텀 필터를 작성했습니다.
•
carrotapp 하위에 templatetags를 생성하고, custom_timesince.py를 추가했습니다.
# custom_timesince.py
from django import template
from django.utils import timezone
register = template.Library()
@register.filter(name='custom_timesince')
def custom_timesince(value):
now = timezone.now()
difference = now - value
days = difference.days
seconds = difference.seconds
minutes = seconds // 60
hours = seconds // 3600
weeks = days // 7
if days >= 7:
return f"{weeks}주 전"
elif days >= 1:
return f"{days}일 전"
elif hours >= 1:
return f"{hours}시간 전"
elif minutes >= 1:
return f"{minutes}분 전"
else:
return "방금 전"
Python
복사
◦
1시간 이내일 경우 OO분 전
◦
하루 이내일 경우 OO시간 전
◦
7일 이내일 경우 OO일 전
◦
그 이상일 경우 OO주 전으로 표시됩니다.