根据周数显示week_ago?

时间:2013-10-14 23:51:46

标签: ruby-on-rails ruby date week-number

我试图显示根据周数计算的周数 “x周前” 这应该只是增加一周前,两周前,三周前,1个月前,2个月前,1年前..等等

我正在使用方法助手:

  def weeks_ago_in_words(from_time, include_seconds = false)
    to_time   = Time.now
    weeks_ago = ((to_time - from_time)/1.week).abs
    [nil, "last week", "two weeks ago", "three weeks ago"][weeks_ago] ||
        distance_of_time_in_words(from_time, to_time, include_seconds)
  end

在视图中:

  = weeks_ago_in_words(Time.local(2013) + week.to_i)

week = a week number like 1,10,28,52 etc

这不能给我正确的结果,是否有更好的方法来计算基于周围的“x周前”?

1 个答案:

答案 0 :(得分:0)

如果您要比较同一年的两个日期,请使用cweek代码:

require 'date'

Time.now.to_date.cweek - Date.new(2013,1,1).cweek

如果你要比较两个不同的年份,你必须添加一些条件逻辑来确定你的年份乘数,因为cweek在2012年12月31日和2013年1月1日返回相同的值。