Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Ruby on Rails中查找2天之间的天数_Ruby On Rails_Ruby_Datetime - Fatal编程技术网

Ruby on rails 在Ruby on Rails中查找2天之间的天数

Ruby on rails 在Ruby on Rails中查找2天之间的天数,ruby-on-rails,ruby,datetime,Ruby On Rails,Ruby,Datetime,我在寻找两个日期之间的天数时遇到了一些问题 情况如下: 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 . 找到日子的最好方法是什么 Post.where(["date(created_at) BETWEEN ? AND ?

我在寻找两个日期之间的天数时遇到了一些问题

情况如下:

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 .
找到日子的最好方法是什么

Post.where(["date(created_at) BETWEEN ? AND ?", Date.yesterday, Date.tomorrow]
更多详细信息:

now=Time.now
未来=时间。现在+100天
而现在是未来
现在=现在+1.5天
现在放
结束
这会给你日期,而不是天数

(startdate.beginning_of_day..enddate_timestamp.to_time.beginning_of_day).step(1.day) do |day|    
  puts day
end

附言:从性能角度看,这并不好。

有几种可能的解决方案。一种可能性是创建一个带有日期的范围,然后将该范围转换为数组

# 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 
使用
来扩展所有日期的范围

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

不知道你到底在问什么。找到哪几天?他们有多少人?他们有多少人?已经过去的时间间隔?需要更多关于您希望输出是什么的信息吗?还有,你想知道的是什么吗?@Doon也许我的英语不好,但是
他们的数量?
他们的数量有什么区别?
对不起,我指的是他们的数量,然后是他们的名字,而不是数字。你想在单词中使用“时间”吗?参考:谢谢你的回答。但这不是我想要的。我想要两个动态日期之间的差异。请在动态日期上使用此代码。这只是一个理解这个想法的例子
range.each { |day| puts day.day }
29
30
31
1
2
3