Rails - 获取当前周和月的开始和结束日期

时间:2012-08-13 10:05:10

标签: ruby-on-rails datetime

我是铁杆上的红宝石新手并且陷入了约会。我使用Time.now来获取当前时间。现在我想找出当前周和当月的srart和结束日期。例如:

如果Time.now返回我 -

2012-08-13 15:25:35 +0530

然后本周的开始和结束日期为:

2012-08-12 - 2012-08-18

然后是当月的开始和结束日期:

2012--08-01 - 2012-08-31

我正在使用代码实现相同的功能:

Time.now.wday   
 => 1 

Time.now - 1.day
=> 2012-08-12 15:31:44 +0530 

Time.now + 5.day
 => 2012-08-19 15:32:38 +0530

等等..但我发现这不是一个方便的方法。我确信Ruby on Rails确实拥有更好的解决方案。任何人都可以建议找出相同的..

2 个答案:

答案 0 :(得分:58)

而不是使用Time.now

使用以下代码解决您的疑问

d = Date.today

d.at_beginning_of_week
#Mon, 13 Aug 2012
d.at_beginning_of_week.strftime
#"2012-08-13"
d.at_beginning_of_week.strftime("%d")
#"13" -> To print the date.

同样,您可以在Date Class

中找到多种方法

答案 1 :(得分:2)

查看Date类:

http://api.rubyonrails.org/classes/Date.html

方法begin_of_ *和end_of_ *看起来就像你正在追求的那样。对于这一周,您甚至可以在考虑本周开始的那一天通过。