对于我正在进行的项目,我希望收集上周的开始和结束日期。我的星期从星期日开始,到星期六结束。
我想要的是什么:
如果今天是" Sun,2015年4月12日"或者" 2015年4月13日星期一",我上周的开始日期应为" Sun,2015年4月5日00:00:00"截止日期应为"星期六,2015年4月11日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日",我得到正确的开始日期(" Sun,2015年4月5日00:00:00")和结束日期( "星期六,2015年4月11日23:59:59")。但是,如果我的DateTime.now是(" Sun,2015年4月12日和#34;)我的开始日期和结束日期变为("太阳,2015年3月29日00:00:00")到(& #34;周六,2015年4月4日23:59:59")。我的猜测是这种行为是因为红宝石周从星期一开始。但在我的情况下,我从周日开始一周,但我的日期不正确。
有没有办法可以使用end_of_week实现我想要的东西,或者我现在正在做的任何事情,以获得结束日期是最佳方式。
答案 0 :(得分:2)
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
#]