这是一个关于Ruby on Rails函数的问题。

5
我想要一个函数,它接受两个字符串类型的参数start_dayend_day作为开始和结束日期,并返回指定日期范围内包括开始和结束日期在内的日期列表,请问有人能提供高效的代码块吗?
def get_list_of_dates(start_date, end_date)
  ...
  return dates
end
2个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接