2017-10-05 79 views
3

我想从现在开始的一个星期的早上8点开始的DateTime。从现在开始的一周8点

获取一星期简单:

DateTime.now + 1.week 

如何设置结果日期的具体时间?

+0

你的问题并不清楚。 “早上8点的日期”是什么意思? – sawa

+0

你写了你想要约会。你的代码使用日期时间。然后你想将日期转换为时间?太混乱。 – sawa

+0

最近版本的Rails使用'ActiveSupport :: TimeWithZone'而不是'DateTime'。你应该这样做,除非你有一个旧的Rails版本。 – Stefan

回答

8

有很多种方法来实现这一目标。这里有一个:

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) 
4

这样,例如:

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

[...]1周从现在起8点在莫rning

我表达经由:

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

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