2012-08-13 12 views
28

Rubyの新機能です。私は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 

など..しかし、私はこれを行うのに便利な方法は見つけられません。確かにRuby on Railsはよりよい解決策を抱いています。

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

あなたは後にしている正確にどのように見えるbeginning_of_ *とend_of_ *方法:誰もが

答えて

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

で、複数のメソッドにこの答えを見つけることができますしばらくの間がありました私は 'Time.now.at_beginning_of_ *'を使うことができるRails 5.0.1を使っています。将来の読者のためのコメントとして追加したいと思っていました;) – SidOfc

2

チェックアウトDateクラスを..同じことを把握することをお勧めすることができます。週には、あなたは週の始まりを考慮する日を渡すことさえできます。

関連する問題