【发布时间】:2011-03-18 10:46:13
【问题描述】:
我有以下自定义函数将小时转换为时间单位:
def time_expiry_text(time_expiry) # unit of time is hours
time_expiry_text = ''
if ( (time_expiry / 24) > 30 ) then # if more than 30 days use months as unit
months = ( (time_expiry / 24) / 30 )
time_expiry_text = months.to_s
time_expiry_text += months == 1 ? ' month' : ' months'
elsif time_expiry >= 24 then # if greater than or equal to 1 day or 24 hours use days as unit
days = time_expiry / 24
time_expiry_text = days.to_s
time_expiry_text += days == 1 ? ' day' : ' days'
else
hours = time_expiry
time_expiry_text = hours.to_s
time_expiry_text += hours == 1 ? ' hour' : ' hours'
end
return time_expiry_text
end
我有两个问题:
有时我并不总能得到我想要的结果。例如,我的返回时间为 -2700 小时。
当时间单位是月时,我也想返回剩余的天数。例如,2 个月零 13 天。
【问题讨论】:
-
keruilin,逻辑有点错误,因为您假设每个月都是 30 天。我会玩一下代码并发布答案
标签: ruby-on-rails ruby time