【问题标题】:Should the beginning_of_week return the first of the month if not the beginning of the week?如果不是一周的开始, begin_of_week 是否应该返回本月的第一天?
【发布时间】:2026-01-06 22:50:01
【问题描述】:

我正在尝试为报告设置一些日期变量,因此我正在尝试日期计算。

yesterday = DateTime.yesterday()

2015 年 7 月 10 日

yesterday.beginning_of_week 

于 2015 年 7 月 5 日返回,即上周日。

(yesterday.beginning_of_week - 1.days).beginning_of_week 

返回 2015 年 7 月 1 日,即前一个星期三。这似乎是错误的。

(yesterday.beginning_of_week - 5.days).beginning_of_week 

最终于 2015 年 6 月 28 日返回。这是正确的。

出于某种我不知道的原因,每月的第一天应该自动成为一周的开始吗?谢谢...

编辑——更多信息

Date.beginning_of_week

返回:星期一

Date.new(2015, 7, 2).at_beginning_of_week

返回 2015 年 6 月 29 日,预计是星期一。

【问题讨论】:

  • 我无法复制这些; yesterday 的值是多少?当然,我的一周从星期一开始。
  • @DaveNewton 我昨天添加的。我也在考虑将周初设置为星期一,但还没有完成。我很惊讶我的默认为星期日,因为文档似乎另有说明。
  • 我仍然无法使用b_o_w(:sunday) 欺骗b_o_ws。
  • @DaveNewton 如果我将昨天设置为 2015 年 7 月 2 日,那么一周的开始时间仍然是 2015 年 7 月 1 日。
  • @DaveNewton 我在 ActiveSupport 4.2.1 上。你的版本是什么?不能重复,你的意思是你得到的预期日期是 2015 年 6 月 28 日?嗯...

标签: ruby-on-rails date datetime


【解决方案1】:

我安装了 week_of_month gem,但结果很糟糕。我终于在回溯中看到了这一点。感谢@DaveNewton 的帮助,因为如果你没有说你没有看到这些结果,我就不会寻找那个。

【讨论】:

    最近更新 更多