[RUBY-ON-RAILS] 어떻게 레일의 상대 시간을합니까?
RUBY-ON-RAILS어떻게 레일의 상대 시간을합니까?
나는 레일 응용 프로그램을 쓰고 있어요,하지만 특정 시간 클래스가 주어진다면, 즉 상대 시간을 수행하는 방법을 찾을 수없는 것, 그것은 "1 일 전"30 "초 전"계산하거나 할 수 있거나 한 달 이상이라면 "2008년 9월 1일"등
해결법
-
==============================
1.당신 같은 소리는 ActiveSupport에서의 time_ago_in_words 방법 (또는 distance_of_time_in_words)를 찾고 있습니다. 이처럼 전화 :
당신 같은 소리는 ActiveSupport에서의 time_ago_in_words 방법 (또는 distance_of_time_in_words)를 찾고 있습니다. 이처럼 전화 :
<%= time_ago_in_words(timestamp) %>
-
==============================
2.나는이 작성하지만, 기존의 방법은 더 나은 있는지 언급 확인해야했습니다.
나는이 작성하지만, 기존의 방법은 더 나은 있는지 언급 확인해야했습니다.
module PrettyDate def to_pretty a = (Time.now-self).to_i case a when 0 then 'just now' when 1 then 'a second ago' when 2..59 then a.to_s+' seconds ago' when 60..119 then 'a minute ago' #120 = 2 minutes when 120..3540 then (a/60).to_i.to_s+' minutes ago' when 3541..7100 then 'an hour ago' # 3600 = 1 hour when 7101..82800 then ((a+99)/3600).to_i.to_s+' hours ago' when 82801..172000 then 'a day ago' # 86400 = 1 day when 172001..518400 then ((a+800)/(60*60*24)).to_i.to_s+' days ago' when 518400..1036800 then 'a week ago' else ((a+180000)/(60*60*24*7)).to_i.to_s+' weeks ago' end end end Time.send :include, PrettyDate
-
==============================
3.그냥 time_ago_in_words을 사용하는 앤드류 마샬의 솔루션을 명확히 (3.0 레일 및 레일 용 4.0)
그냥 time_ago_in_words을 사용하는 앤드류 마샬의 솔루션을 명확히 (3.0 레일 및 레일 용 4.0)
당신이보기에있는 경우
<%= time_ago_in_words(Date.today - 1) %>
당신은 컨트롤러에있는 경우
include ActionView::Helpers::DateHelper def index @sexy_date = time_ago_in_words(Date.today - 1) end
컨트롤러는 모듈 ActionView이없는 :: 도우미 :: DateHelper은 기본적으로 수입했다.
N.B. 그것은 당신의 컨트롤러에 오기 도우미에 "레일 방식"아닙니다. 도우미는 견해를 도와입니다. time_ago_in_words 방법은 MVC 화음 도면 엔티티로 결정되었다. (때 로마에서 나는 ... 동의하지 않지만)
-
==============================
4.는 어때
는 어때
30.seconds.ago 2.days.ago
또는 뭔가 다른 당신을 위해 촬영되었다?
-
==============================
5.당신은 상대 시간을 수행 할 산술 연산자를 사용할 수 있습니다.
당신은 상대 시간을 수행 할 산술 연산자를 사용할 수 있습니다.
Time.now - 2.days
당신이 2 일 전에 제공 할 것입니다.
-
==============================
6.이런 식으로 뭔가가 작동합니다.
이런 식으로 뭔가가 작동합니다.
def relative_time(start_time) diff_seconds = Time.now - start_time case diff_seconds when 0 .. 59 puts "#{diff_seconds} seconds ago" when 60 .. (3600-1) puts "#{diff_seconds/60} minutes ago" when 3600 .. (3600*24-1) puts "#{diff_seconds/3600} hours ago" when (3600*24) .. (3600*24*30) puts "#{diff_seconds/(3600*24)} days ago" else puts start_time.strftime("%m/%d/%Y") end end
-
==============================
7.때문에 여기에 대부분의 대답은 time_ago_in_words을 제안합니다.
때문에 여기에 대부분의 대답은 time_ago_in_words을 제안합니다.
사용하는 대신 :
<%= time_ago_in_words(comment.created_at) %>
레일에서 선호 :
<abbr class="timeago" title="<%= comment.created_at.getutc.iso8601 %>"> <%= comment.created_at.to_s %> </abbr>
코드를 사용하여 jQuery 라이브러리 http://timeago.yarp.com/, 함께 :
$("abbr.timeago").timeago();
주요 장점 : 캐싱
http://rails-bestpractices.com/posts/2012/02/10/not-use-time_ago_in_words/
-
==============================
8.여기에 인스턴스 메소드를 살펴 보자 :
여기에 인스턴스 메소드를 살펴 보자 :
http://apidock.com/rails/Time
이것은 어제, 내일, beginning_of_week, 전 등 유용한 방법이있다
예를 들면 :
Time.now.yesterday Time.now.ago(2.days).end_of_day Time.now.next_month.beginning_of_month
-
==============================
9.나는 레일 액티브 오브젝트에 대해이 작업을 수행 보석을 작성했습니다. 예제 용도는 created_at하지만 클래스 ActiveSupport :: TimeWithZone와 updated_at 또는 아무것도에 대한 작업도 않습니다.
나는 레일 액티브 오브젝트에 대해이 작업을 수행 보석을 작성했습니다. 예제 용도는 created_at하지만 클래스 ActiveSupport :: TimeWithZone와 updated_at 또는 아무것도에 대한 작업도 않습니다.
그냥 보석 설치하고 TimeWithZone 인스턴스에서 '꽤'메서드를 호출합니다.
https://github.com/brettshollenberger/hublot
-
==============================
10.당신은 레일 응용 프로그램을 작성하는 경우 사용한다
당신은 레일 응용 프로그램을 작성하는 경우 사용한다
Time.zone.now Time.zone.today Time.zone.yesterday
이것은 당신이 레일 응용 프로그램을 구성한있는 시간대의 시간이나 날짜를 제공합니다.
당신이 UTC를 사용하도록 응용 프로그램을 구성하는 경우 예를 들어, Time.zone.now 항상 (이 예를 들어 영국 여름의 변화에 영향을받지 않습니다) UTC 시간에있을 것입니다.
상대 시간을 계산하는 것은 쉬운 예를 들어,
Time.zone.now - 10.minute Time.zone.today.days_ago(5)
-
==============================
11.또 다른 방법은 백엔드에서 약간의 논리를 언로드하고 브라우저가 자바 스크립트를 사용하여 작업을 할 수 있도록하는 것입니다 같은 플러그인 :
또 다른 방법은 백엔드에서 약간의 논리를 언로드하고 브라우저가 자바 스크립트를 사용하여 작업을 할 수 있도록하는 것입니다 같은 플러그인 :
jQuery를 시간 전에 또는 그 레일 보석 적응
from https://stackoverflow.com/questions/195740/how-do-you-do-relative-time-in-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일 모델의 기본 정렬 순서? (0) | 2020.02.27 |
---|---|
[RUBY-ON-RAILS] MONIT와 delayed_job을 모니터링하는 방법 (0) | 2020.02.27 |
[RUBY-ON-RAILS] 어떻게 RVM은 어떻게 실제로 일을 rbenv? (0) | 2020.02.27 |
[RUBY-ON-RAILS] 루비 온 레일즈 내에서 보안 REST API를 구축하기위한 제안을 찾고 (0) | 2020.02.27 |
[RUBY-ON-RAILS] before_save과 : before_create 레일 콜백에 루비,의 차이를 무엇입니까? (0) | 2020.02.26 |