2013-10-14 4 views
0

Im пытается показать количество недель назад, рассчитанное с номера недели «x недель назад» это должно увеличиваться только неделю назад, две недели назад, три недели назад, 1 месяц назад, 2 месяца назад, 1 год назад .. и т.д.показать week_ago на основе номера недели?

Im используя вспомогательный метод:

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 

Это не дает мне правильные resuls, есть лучший способ вычислить «х недель назад "на основе weeknumer?

ответ

0

Если при сравнении двух дат с того же года здесь код, используя cweek:

require 'date' 

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

Если вы сравниваете два разных лет вам придется добавить условную логику, чтобы определить ваш год множитель, как cweek возвращает то же значение для 31 декабря 2012 года и 1 января 2013 года.

+0

Пробовал это, но это не сработало. Я хочу получить неделю, основанную только на номере недели – Rubytastic

Смежные вопросы