2017-10-05 80 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。