我在找到2个日期之间的日子时遇到了一些问题。
方案如下:
time = Time.new
enddate_timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
startdate = @logInfo.updated_at #here updated_at is the column in the db .
找到日子的最佳方式是什么?
答案 0 :(得分:1)
Post.where(["date(created_at) BETWEEN ? AND ?", Date.yesterday, Date.tomorrow]
更多详情:http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-where
答案 1 :(得分:1)
有几种可能的解决方案。可能的方法是创建一个带有日期的Range,然后将范围转换为数组
# set the boundaries
today = Time.current
past = 5.days.ago
请注意,两个边界都是时间实例。我们应该把它们投入日期。我使用了时间,因为你的专栏是时间。
range = past.to_date..today.to_date
# => Sun, 29 Dec 2013..Fri, 03 Jan 2014
使用to_a
扩展获取所有日期的范围
range.to_a
# => [Sun, 29 Dec 2013, Mon, 30 Dec 2013, Tue, 31 Dec 2013, Wed, 01 Jan 2014, Thu, 02 Jan 2014, Fri, 03 Jan 2014]
range.count
# => 6
您也可以枚举它们
range.each { |day| puts day.day }
29
30
31
1
2
3
答案 2 :(得分:0)
now = Time.now
future = Time.now + 100 days
while now < future
now = now + 1.day
puts now
end
这将为您提供日期,而不是天数。
答案 3 :(得分:0)
(startdate.beginning_of_day..enddate_timestamp.to_time.beginning_of_day).step(1.day) do |day|
puts day
end
P.S:表现明智,这不好。