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

Swa*_*wal 29 datetime ruby-on-rails

我是新来的铁轨上的红宝石,卡在约会.我曾经Time.now得到当前的时间.现在我想找出当前周和当月的srart和结束日期.例如:

如果Time.now还给我 -

2012-08-13 15:25:35 +0530
Run Code Online (Sandbox Code Playgroud)

那么本周的开始和结束日期是:

2012-08-12 - 2012-08-18
Run Code Online (Sandbox Code Playgroud)

那么当月的开始和结束日期是:

2012--08-01 - 2012-08-31
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

Shr*_*wal 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.
Run Code Online (Sandbox Code Playgroud)

同样,您可以在Date类中找到多个方法

  • 这个答案已经存在了一段时间,我使用的是Rails 5.0.1,在其中我还可以使用`Time.now.at_beginning_of_ *`,只是认为我会将其添加为将来的读者的注释;) (2认同)