2011-03-22 166 views
5

我想有这得到START_DAYEND_DAY两个字符串类型的参数,并返回指定日期范围包括开始和结束日期内的日期列表的功能,任何人都可以提供一个高效的代码块?Ruby on Rails的功能本

def get_list_of_dates(start_date, end_date) 
    ... 
    return dates 
end 

回答

5
def get_list_of_dates(start_date, end_date) 
    (Date.parse(start_date)..Date.parse(end_date)).to_a 
end 

如果Date.parse不接受字符串(它不接受多种格式),则可能需要检出chronic

0

如果你的ActiveSupport尝试:

start_date = Date.parse(start_date) 
end_date = Date.parse(end_date) 
for date in start_date..end_date 
    puts date 
end 

这应该给你:

... 
Sat, 05 Mar 2011 
Sun, 06 Mar 2011 
Mon, 07 Mar 2011 
Tue, 08 Mar 2011 
Wed, 09 Mar 2011 
... 

用的ActiveSupport,你可以做这样的事情:

# if you exclude to_date you get all Times in between 
for date in 17.days.ago.to_date..Date.yesterday 
    puts date 
end