【发布时间】:2015-06-19 00:15:55
【问题描述】:
对于我正在进行的项目,我希望收集上周开始和结束日期的日期。我的一周从周日开始,到周六结束。
我想要什么:
如果今天是“2015 年 4 月 12 日星期日”或“2015 年 4 月 13 日星期一”,我上周的开始日期应该是“2015 年 4 月 5 日星期日 00:00:00”,结束日期应该是“11 日星期六” 2015 年 4 月 23:59:59”。我使用DateTime.now.beginning_of_week(:sunday).last_week(:sunday) 获取开始日期,目前使用start_date + 6.days 获取结束日期。但是我希望使用 end_of_week 方法来获取我的结束日期。
我尝试了什么:
DateTime.now.last_week.end_of_week(:sunday) and DateTime.now.beginning_of_week(:sunday).last_week.end_of_week(:sunday)
面临的问题:
如果 DateTime.now 是“星期一,2015 年 4 月 13 日”,我得到正确的开始日期(“星期日,2015 年 4 月 5 日 00:00:00”)和结束日期(“星期六,2015 年 4 月 11 日 23:59: 59")。但是,如果我的 DateTime.now 是(“Sun,2015 年 4 月 12 日”),我的开始日期和结束日期变为(“Sun,2015 年 3 月 29 日 00:00:00”)到(“Sat,2015 年 4 月 4 日 23:59:59 ”)。我的猜测是这种行为是因为 ruby 中的一周从星期一开始。但就我而言,我从周日开始一周,但我仍然得到不正确的日期。
有没有一种方法可以使用 end_of_week 来实现我想要的,或者我现在正在做的任何事情来获得结束日期是最好的方法。
【问题讨论】:
-
问得好!如果今天是星期天,返回明天的上周开始和结束日期怎么样?
-
这是个好主意,但在某些情况下可能会失败。虽然我在示例中没有使用星期六,但如果今天是星期六,这将给我当前星期的日期。
-
注意你可以写
start_date + 6,而不是+ 6.days。
标签: ruby-on-rails ruby date datetime