33

我是 ruby​​ on rails 的新手,被日期卡住了。我用来Time.now获取当前时间。现在我想找出当周和当月的 srart 和结束日期。例如:

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

查看日期类:

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

方法 begin_of_* 和 end_of_* 看起来正是您所追求的。对于一周,您甚至可以通过您认为一周开始的哪一天。

于 2012-08-13T10:16:01.237 回答