试图获取今年创建的记录,我偶然发现this great question。第二个答案说你从今天创建的模型中获得所有记录:
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?怎么样?
答案 0 :(得分:3)
如果您尚未设置,则应在config/application.rb
文件中设置时区。查找以config.time_zone
开头的行。 (如果您不确定要给出的值,可以运行rake time:zones:all
以获取所有可用时区的列表。)
设置好时区后,应使用Time.zone.now
,而不是Time.now
。这将适当地将您的时间“范围”到您的时区。
查看the API以获取有关TimeWithZone
。