gpt4 book ai didi

ruby-on-rails - end_of_week 返回不同的日期

转载 作者:数据小太阳 更新时间:2023-10-29 09:03:30 24 4
gpt4 key购买 nike

对于我正在处理的项目,我希望收集上周的开始日期和结束日期。我的一周从周日开始,到周六结束。

我想要的:

如果今天是“Sun, 12 Apr 2015”或“Mon, 13 Apr 2015”,我上周的开始日期应该是“Sun, 05 Apr 2015 00:00:00”,结束日期应该是“Sat, 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 是(“2015 年 4 月 12 日星期日”),我的开始日期和结束日期将变为(“2015 年 3 月 29 日星期日 00:00:00”)到(“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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com