从现在开始的1个星期8点钟

时间:2017-10-05 13:24:08

标签: ruby-on-rails ruby

我希望从现在起的早上8点获得一个DateTime。

一周很容易:

DateTime.now + 1.week

如何将结果日期设置为特定时间?

3 个答案:

答案 0 :(得分:11)

有很多方法可以实现这一目标。这是一个:

Time.parse('8am') + 1.week

这是另一个:

DateTime.now.beginning_of_day + 1.week + 8.hours

或者怎么样:

1.week.from_now.beginning_of_day + 8.hours

甚至:

DateTime.now.advance(days: 7).change(hour: 8)

答案 1 :(得分:5)

  

[...]从现在开始的1个星期早上8点

我通过以下方式表达:

1.week.from_now.change(hour: 8)
#=> Thu, 12 Oct 2017 08:00:00 CEST +02:00

change会自动设置"较小的"时间单位(分,秒等)为0。

答案 2 :(得分:4)

像这样,例如:

(DateTime.now + 1.week).beginning_of_day + 8.hours