我想用相對的詞語顯示結束時間,例如「你還有2個小時才能回答投票」。是時間點:在一小時內,在今天內,明天晚於明天還是過去?
下面有什麼問題?當有例如還剩54分鐘,它返回「54小時」。
minute_diff = ((datetime_value - DateTime.current) * 24 * 60).to_i
case
when minute_diff < 0 # past time
[nil, "closed"]
when minute_diff.between?(0, 59) # within an hour
[minute_diff, "minutes"]
when datetime_value.today? # today
number_of_hours = (minute_diff/60)
[number_of_hours, "hours"]
when datetime_value.to_date == DateTime.current.tomorrow.to_date # tomorrow
[1, "day"]
when datetime_value.to_date > DateTime.current.tomorrow.to_date # later than tomorrow
number_of_days = (datetime_value.to_date - DateTime.current.to_date).to_i
[number_of_days, "days"]
end
(上一個更好的方式來回報相對時間的建議,非常感謝)
「剩下2個小時」沒有意義,語法上,所以很難提供建議。這些可能是你正在尋找的東西。 http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html –
@MaxWilliams好吧,現在的措辭已經糾正。是的,我知道DateHelper,但沒有發現它足夠我的情況。 – Numbers
你想在過去打印什麼? –