我試圖計算我的記錄在Rails 5中的「剩餘時間」。我的記錄有一個created_at
列(UTC)。Ruby on Rails:計算時間差
每個記錄持續24小時,我有我的模式在全球範圍內:現在
scope :available, -> { where(
created_at: (Time.current - 24.hours)..Time.current
) }
,在前端側,這裏是我所需要的:
Record id 1: 23:59:12
Record id 2: 22:23:03
...
經過一番研究,我發現了一些幫手做這項工作,但看起來很醜,這就是爲什麼我要求你的幫助。
這裏是我的(蘇茨基但工作)代碼:
# In my helper:
def time_diff(start_time, end_time)
seconds_diff = (start_time - end_time).to_i.abs
hours = seconds_diff/3600
seconds_diff -= hours * 3600
minutes = seconds_diff/60
seconds_diff -= minutes * 60
seconds = seconds_diff
"#{hours.to_s.rjust(2, '0')}:#{minutes.to_s.rjust(2, '0')}:#{seconds.to_s.rjust(2, '0')}"
end
# And my the view:
time_diff(Time.current - 24.hours, model_instance.created_at)
我敢肯定,我錯過了一些真棒Rails的幫手這可能使這一切的一行:)
感謝您的閱讀我。
近似會[distance_of_time_in_words](http://api.rubyonrails.org/classes/ActionView/Helpers/ DateHelper.html#方法-I-distance_of_time_in_words)。根據你的具體要求,在rails中沒有本地方式。 – rogelio