对于我正在从事的项目,我希望收集上周的开始日期和结束日期。我的一周从周日开始,周六结束。
我想要什么:
如果今天是“2015 年 4 月 12 日星期日”或“2015 年 4 月 13 日星期一”,我上周的开始日期应为“2015 年 4 月 5 日星期日 00:00:00”,结束日期应为“2015 年 4 月 13 日星期六” 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 是“Mon, 13 Apr 2015”,我会得到正确的开始日期(“Sun, 2015 Apr 05 00:00:00”)和结束日期(“Sat, 11 Apr 2015 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 来实现我想要的目标,或者我现在正在做的任何事情来获得结束日期是最好的方法。
最佳答案
UPD由于对原始问题的误解,答案已更改。
▶ dt = DateTime.parse "Sun, 12 Apr 2015"
#=> Sun, 12 Apr 2015 00:00:00 +0000
▶ [
▷ (dt - 1.week).beginning_of_week(:sunday),
▷ (dt - 1.week).end_of_week(:sunday)
▷ ]
#=> [
# [0] Sun, 05 Apr 2015 00:00:00 +0000,
# [1] Sat, 11 Apr 2015 23:59:59 +0000
#]
关于ruby-on-rails - end_of_week 返回不同日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609519/