我是铁杆上的红宝石新手并且陷入了约会。我使用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确实拥有更好的解决方案。任何人都可以建议找出相同的..
答案 0 :(得分: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.
同样,您可以在Date Class
中找到多种方法答案 1 :(得分:2)
查看Date类:
http://api.rubyonrails.org/classes/Date.html
方法begin_of_ *和end_of_ *看起来就像你正在追求的那样。对于这一周,您甚至可以在考虑本周开始的那一天通过。