Rus*_*lan 6 ruby ruby-on-rails
我想从现在的早上8点得到一个DateTime.
一周很容易:
DateTime.now + 1.week
Run Code Online (Sandbox Code Playgroud)
如何将结果日期设置为特定时间?
Tom*_*ord 13
有很多方法可以实现这一目标.这是一个:
Time.parse('8am') + 1.week
Run Code Online (Sandbox Code Playgroud)
这是另一个:
DateTime.now.beginning_of_day + 1.week + 8.hours
Run Code Online (Sandbox Code Playgroud)
或者怎么样:
1.week.from_now.beginning_of_day + 8.hours
Run Code Online (Sandbox Code Playgroud)
甚至:
DateTime.now.advance(days: 7).change(hour: 8)
Run Code Online (Sandbox Code Playgroud)
[...]从现在开始的1个星期早上8点
我通过以下方式表达:
1.week.from_now.change(hour: 8)
#=> Thu, 12 Oct 2017 08:00:00 CEST +02:00
Run Code Online (Sandbox Code Playgroud)
change
自动将"较小"时间单位(分,秒等)设置为0.