【Rails】 통지 시간을 「○일 전」 「○분 전」과 같이 표시하는 편리한 메소드를 발견했다
알림 기능을 만들었지만 ...
Rails에서 Qiita와 같은 앱을 만들어 알림 기능을 만들었습니다.
덧붙여서 참고로 한 기사는 이쪽. 굉장히 알기 쉽다.
h tps : // / ls-s 쇼오 l. 네 t / 라이 ls - 치후 카치온 /
다만, 아무것도 하지 않으면,

이런 느낌이 되어 버린다. 뭐라고 할까, 확실히 오지 않는다!
이것은 Notification 모델의 created_at
를 열거하고 있을 뿐이므로, 기계적으로 시간을 열거하고 있다.
좋은 느낌의 「○일전」 「○분전」을 검토했다.
더 알림 싶어!
거기서, 트위터의 통지같은 느낌의 「○일전」 「○분전」을 검토했다.
조건
표시 예
60분 이내
"10분 전"
24시간 이내
"5시간 전"
30일 이내
"14일 전"
그 이전
created_at 그대로
이것이라면 좋은 느낌에 통지 같아지는 것이 아닐까!
이런 느낌의 시간 표시를 해주는 메소드나 gem을 찾았지만 특별히 발견되지 않았기 때문에 스스로 만들기로 했다.
그것이 여기
notification.rbdef how_long_ago
if (Time.now - self.created_at) <= 60 * 60
# 60分以内なら
((Time.now - self.created_at) / 60).to_i.to_s + "分前"
elsif (Time.now - self.created_at) <= 60 * 60 * 24
# 24時間以内なら
((Time.now - self.created_at) / 3600).to_i.to_s + "時間前"
elsif (Date.today - self.created_at.to_date) <= 30
# 30日以内なら
(Date.today - self.created_at.to_date).to_i.to_s + "日前"
else
# それ以降
self.created_at
end
end
주의해야 할 곳은 두
・도중까지는 DateTime형에서의 뺄셈이 되지만, 도중부터는 to_date
메소드를 사용해 Date형으로 변환하지 않으면 「○일전」이 실제의 일자와 어긋나 버린다
· 빼기 결과를 to_i
로 정수로 변환하고 to_s
로 문자열로 변환하여 문자열을 연결합니다.
결과
notification.created_at
를 notification.how_long_ago
로 바꾸면,

좋은 느낌에 통지 같아졌다!
추가
time_ago_in_words
라는 완벽한 방법이 있었습니다…
Reference
이 문제에 관하여(【Rails】 통지 시간을 「○일 전」 「○분 전」과 같이 표시하는 편리한 메소드를 발견했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Kouch/items/5761c830c3a0d041235b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
더 알림 싶어!
거기서, 트위터의 통지같은 느낌의 「○일전」 「○분전」을 검토했다.
조건
표시 예
60분 이내
"10분 전"
24시간 이내
"5시간 전"
30일 이내
"14일 전"
그 이전
created_at 그대로
이것이라면 좋은 느낌에 통지 같아지는 것이 아닐까!
이런 느낌의 시간 표시를 해주는 메소드나 gem을 찾았지만 특별히 발견되지 않았기 때문에 스스로 만들기로 했다.
그것이 여기
notification.rb
def how_long_ago
if (Time.now - self.created_at) <= 60 * 60
# 60分以内なら
((Time.now - self.created_at) / 60).to_i.to_s + "分前"
elsif (Time.now - self.created_at) <= 60 * 60 * 24
# 24時間以内なら
((Time.now - self.created_at) / 3600).to_i.to_s + "時間前"
elsif (Date.today - self.created_at.to_date) <= 30
# 30日以内なら
(Date.today - self.created_at.to_date).to_i.to_s + "日前"
else
# それ以降
self.created_at
end
end
주의해야 할 곳은 두
・도중까지는 DateTime형에서의 뺄셈이 되지만, 도중부터는
to_date
메소드를 사용해 Date형으로 변환하지 않으면 「○일전」이 실제의 일자와 어긋나 버린다· 빼기 결과를
to_i
로 정수로 변환하고 to_s
로 문자열로 변환하여 문자열을 연결합니다. 결과
notification.created_at
를 notification.how_long_ago
로 바꾸면,

좋은 느낌에 통지 같아졌다!
추가
time_ago_in_words
라는 완벽한 방법이 있었습니다…
Reference
이 문제에 관하여(【Rails】 통지 시간을 「○일 전」 「○분 전」과 같이 표시하는 편리한 메소드를 발견했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Kouch/items/5761c830c3a0d041235b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
time_ago_in_words
라는 완벽한 방법이 있었습니다…
Reference
이 문제에 관하여(【Rails】 통지 시간을 「○일 전」 「○분 전」과 같이 표시하는 편리한 메소드를 발견했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kouch/items/5761c830c3a0d041235b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)