2012-08-13 165 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

相關問題