33

私はRuby on Railsが初めてで、日付に行き詰まりました。Time.now現在時刻を取得していました。ここで、現在の週と現在の月の開始日と終了日を調べたいと思います。例えば:

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 の方が優れたソリューションを提供していると確信しています。誰でも同じことを理解することを提案できますか..

4

2 に答える 2

66

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 クラスには複数のメソッドがあります。

于 2012-08-13T10:24:21.110 に答える
3

Dateクラスをチェックしてください:

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

メソッドbeginning_of_*とend_of_*は、まさにあなたが求めているもののように見えます。週については、週の始まりと見なす日を渡すこともできます。

于 2012-08-13T10:16:01.237 に答える