Ruby on rails 是一个时间点:一小时之内,今天之内,明天晚于明天还是已经过去?

Ruby on rails 是一个时间点:一小时之内,今天之内,明天晚于明天还是已经过去?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我想用相对的词显示截止时间,例如“你还有2小时来回答投票” 下面的问题是什么?当还剩54分钟时,它返回“54小时” minute_diff=((datetime_值-datetime.current)*24*60)到 案例 当分钟差datetime.current.tomory.to_date#晚于明天时 天数=(datetime\u value.to\u date-datetime.current.to\u date)。to\u i [天数,“天”] 结束 (关于返回相对时间的更好方法的建议

我想用相对的词显示截止时间,例如“你还有2小时来回答投票”

下面的问题是什么?当还剩54分钟时,它返回“54小时”

minute_diff=((datetime_值-datetime.current)*24*60)到
案例
当分钟差<0时
[无,“已关闭”]
(0,59)之间的分钟差在一小时内
[分钟差异,“分钟”]
今天是什么时候今天
小时数=(分钟差/60)
[小时数,小时数]
当datetime_value.to_date==datetime.current.tomory.to_date#明天
[1,“天”]
当datetime_value.to_date>datetime.current.tomory.to_date#晚于明天时
天数=(datetime\u value.to\u date-datetime.current.to\u date)。to\u i
[天数,“天”]
结束

(关于返回相对时间的更好方法的建议非常感谢)

关于第二个问题(给出更好的方法),您应该使用已有的方法

if (t = DateTime.current) < datetime_value
  "You have #{distance_of_time_in_words(t, datetime_value)} left to answer the poll".
else
  "Closed"
end
if(t=DateTime.current)

如果您想处理l18n,我最喜欢的是。

关于您的第二个问题(给出更好的方法),您应该使用已经存在的内容

if (t = DateTime.current) < datetime_value
  "You have #{distance_of_time_in_words(t, datetime_value)} left to answer the poll".
else
  "Closed"
end
if(t=DateTime.current)

如果您想处理l18n,我最喜欢的是。

我认为rails日期帮助程序足以处理此问题

if datetime_value > 0
  s = "You have #{time_ago_in_words(datetime_value)} left to answer the poll"
else
  s = "Closed"
end

我认为rails的日期助手已经足够了

if datetime_value > 0
  s = "You have #{time_ago_in_words(datetime_value)} left to answer the poll"
else
  s = "Closed"
end

“还剩2小时”在语法上没有意义,所以很难给出建议。不过,这些可能就是你要找的@麦克斯·威廉姆斯:好的,措辞现在已经更正。是的,我知道DateHelper,但我觉得它不足以满足我的情况。当它过去的时候,你想打印什么?我很抱歉用另一个愚蠢的错误打扰你,但现在已经更正了。如果返回数组[0]的计算结果为零,则消息将“关闭”。“还剩2小时”在语法上没有意义,因此很难给出建议。不过,这些可能就是你要找的@麦克斯·威廉姆斯:好的,措辞现在已经更正。是的,我知道DateHelper,但我觉得它不足以满足我的情况。当它过去的时候,你想打印什么?我很抱歉用另一个愚蠢的错误打扰你,但现在已经更正了。如果返回数组[0]的计算结果为nil,则消息将被“关闭”。这些助手的问题是很难翻译,因为返回值是一个字符串:(这就是为什么我会分别返回时间值和时间单位的名称。但由于我在问题中没有提到任何关于I18n的内容,你的答案确实是正确的。我猜
datetime\u value>0
总是
true
,对吧?不过它们并不难翻译。这些助手的问题是很难翻译,贝卡使用返回值是一个字符串:(这就是为什么我分别返回时间值和时间单位的名称。但是,由于我在问题中没有提到任何关于I18n的内容,您的答案确实是正确的。我猜
datetime\u value>0
总是
真的,对吗?不过,它们不难翻译。有没有办法在这方面应用I18n,因为返回值是one单个字符串?是否有任何方法对此应用I18n,因为返回值是单个字符串?