Ruby / Rails의 "Ago"날짜 / 시간 함수


88

저는 Rails에서 30 분 전, 2 분 전, 1 일 전 등의 타임 스탬프를 계산하는 방법이 있는지 궁금합니다. 트위터 실시간 날짜 스탬프와 같은 것입니다.

Ruby / Rails에 이러한 날짜-시간 변환 기능이 내장되어 있는지 알고 싶습니다.

답변:


189

당신이 사용할 수있는:

10.minutes.ago
2.days.since

또는 귀하의 견해에는 도우미가 있습니다.

distance_of_time_in_words(from_time, to_time)
time_ago_in_words(from_time)

세부 사항 및 추가 옵션 은 API 를 확인하십시오 .


8
Rails 3부터는 이제 10.minutes.ago분이 아닙니다.
cbron

4
Rails 외부에 있다면 require 'active_support'(최소한 Rails 2.X가 설치된 경우).
JellicleCat 2012

7
'active_support / all'필요 또는 번들을 사용하는 경우 : gem "activesupport", : require => "active_support"
Alireza Eliaderani

9

사용 가능한 방법을 사용하여 ago, since별칭 from_now및 사용 가능한 많은 방법 을 사용하여 과거 또는 미래의 시간을 얻을 수 있습니다.

Time.current
#=> Tue, 20 Sep 2016 15:03:30 UTC +00:00

2.minutes.ago
#=> Tue, 20 Sep 2016 15:01:30 UTC +00:00

2.minutes.since
#=> Tue, 20 Sep 2016 15:05:30 UTC +00:00 

1.month.ago
#=> Sat, 20 Aug 2016 15:03:30 UTC +00:00

1.year.since
#=> Wed, 20 Sep 2017 15:03:30 UTC +00:00 

Time 클래스 에서 사용 가능한 모든 메서드 확인


2

distance_of_time_in_words :

from_time = Time.now

distance_of_time_in_words(from_time, from_time + 50.minutes) # => about 1 hour
distance_of_time_in_words(from_time, 50.minutes.from_now) # => about 1 hour
distance_of_time_in_words(from_time, from_time + 15.seconds) # => less than a minute
distance_of_time_in_words(from_time, from_time + 15.seconds, include_seconds: true) # => less than 20 seconds

time_ago_in_words :

time_ago_in_words(3.minutes.from_now) # => 3 minutes
time_ago_in_words(3.minutes.ago) # => 3 minutes
time_ago_in_words(Time.now - 15.hours) # => about 15 hours
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.