0

週番号「x週前」から計算された週数を表示しようとしていますが、これは1週間前、2週間前、3週間前、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

これでは正しい結果が得られません。weeknumer に基づいて「x 週間前」を計算するより良い方法はありますか?

4

1 に答える 1

0

同じ年の 2 つの日付を比較する場合、cweekを使用したコードは次のとおりです。

require 'date'

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

2 つの異なる年を比較する場合、cweek は 2012 年 12 月 31 日と 2013 年 1 月 1 日に同じ値を返すため、年の乗数を決定する条件付きロジックを追加する必要があります。

于 2013-10-15T01:16:58.507 に答える