2012-08-13 169 views
28

我是Ruby on Rails的新手,陷入日期。我用Time.now获得当前时间。现在我想了解当前周和当月的srart和结束日期。例如:Rails - 获取当前周和月的开始日期和结束日期

如果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 

等等..但我不觉得它是一个方便的方法来做到这一点。 Iam确定Ruby on Rails确实有更好的解决方案。任何人都可以提出来找出相同..

回答

53

而不是使用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

+0

多种方法,这个答案已经有一段时间了,我使用的是Rails 5.0.1,我也可以使用'Time.now.at_beginning_of_ *',只是想把它添加为未来读者的评论;) – SidOfc 2017-02-16 13:01:31

相关问题