2

试图获取今年创建的记录时,我偶然发现了这个好问题。第二个答案说您可以通过以下方式从今天创建的模型中获取所有记录:

Model.where("created_at >= ?", Time.now.beginning_of_day)

所以,自然地,我尝试了同样的事情Time.now.beginning_of_year,它工作得很好。

然而,让我感到有趣的是输出的查询(我在控制台中尝试过)是

SELECT COUNT(*) FROM `invoices` WHERE (created_at >= '2012-12-31 23:00:00')

我不知道2013年已经开始于2012-12-31 23:00:00?怎么样?

4

1 回答 1

3

如果您还没有设置它,您应该在config/application.rb文件中设置您的时区。查找以 开头的行config.time_zone。(如果您不确定要给出什么值,可以运行rake time:zones:all以获取所有可用时区的列表。)

设置时区后,您应该使用Time.zone.now,而不是Time.now. 这将正确地将您的时间“范围”到您的时区。

检查API以获取更多详细信息TimeWithZone

于 2013-01-05T01:27:55.567 回答