Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中只显示几分钟、几个小时或几个星期?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何在rails中只显示几分钟、几个小时或几个星期?

Ruby on rails 如何在rails中只显示几分钟、几个小时或几个星期?,ruby-on-rails,Ruby On Rails,我想根据创建的_获得以下结果: 1-59米 1-24小时 1-999+W 例如,如果一篇文章发表了5分钟,它会说5M。如果是15个小时大,它会说:15H,如果是52周大,最后它会说52W 奖励:我该如何使用它:我相信你会使用它来管理它 根据,您需要使用%-dH,%-dM,%-dD,%-dW来获得所需的格式: #view <%=l record.created_at, format: :small %> #config/locales/en.yml time: small: %

我想根据创建的_获得以下结果:

1-59米

1-24小时

1-999+W

例如,如果一篇文章发表了5分钟,它会说
5M
。如果是15个小时大,它会说:
15H
,如果是52周大,最后它会说
52W

奖励:我该如何使用它:

我相信你会使用它来管理它

根据,您需要使用
%-dH
%-dM
%-dD
%-dW
来获得所需的格式:

#view
<%=l record.created_at, format: :small %>

#config/locales/en.yml
time:
   small: %-dH
#查看
#config/locales/en.yml
时间:
小:%-dH

我试过测试这个&它只会返回初始值。需要更多的测试,但应该让你走上正确的轨道

你只想在几周、几小时或几分钟内完成吗?这个怎么样(它会放在助手文件中)


我自由地让它在将来返回“1+…”。

看看谢谢,关于如何让它工作的任何想法:?这会给你两次之间的“距离”,所以无论用户在哪个时区都不会有任何区别。您的数据库时间将以UTC为单位,即时间。现在也应返回。基本上只要
时间
时间。现在
使用相同的时区(默认情况下,它们应该是:它们都只是“从纪元算起的秒数”,请参见),那么数学仍然有效。这难道不意味着每种类型都需要一个条件吗?例如,秒、分、日、周?这将如何与:?
def short_age_string(time)
  diff = Time.now - time #value is seconds (float)
  if diff >= 0
    result = "1-"
  else
    result = "1+"
  end
  diff = diff.abs.to_i
  if diff >= 604800 #seconds in a week
    weeks = diff/604800
    return "#{result}#{weeks}#{"+" if weeks >= 999}W"
  elsif diff > 3600 #seconds in an hour
    return "#{result}#{diff/3600}H"
  else
    return "#{diff/60}#{minutes}M"
  end
end