如何从周数中获取日期?

Mar*_*lin 29 ruby ruby-on-rails

我想找到在给定周内创建的所有项目,并传递一周的数字参数.(created_at是正常时间戳.)

给定一周的数字,在该特定周内找到日期的最简单方法是什么?(本周的任何日期都可以,因为我将在范围内使用beginning_of_week和end_of_week.)

Jac*_*son 72

您可以使用以下commercial方法获取表示一周开头和结尾的Date对象:

week = 41;

wkBegin = Date.commercial(2010, week, 1)
wkEnd = Date.commercial(2010, week, 7)
Run Code Online (Sandbox Code Playgroud)

现在做你的发现:

  Item.find(:all, :conditions->:create_date=>wkBegin..wkEnd.end_of_day)
Run Code Online (Sandbox Code Playgroud)

  • 你将需要wkEnd.end_of_day,否则你的范围将不会涵盖整整一周.(wkEnd.to_time - wkBegin.to_time)/ 1.day.seconds => 6.0 (7认同)

Cho*_*ett 5

假设您的意思是"当前年份中的给定周数",您可以执行以下操作:

2.weeks.since(Time.gm(Time.now.year))
=> Fri Jan 15 00:00:00 UTC 2010
Run Code Online (Sandbox Code Playgroud)

替换(week_number - 1)1在上面,你会得到期望的一周的日期.