假設我們有當前時間,然后將 60 分鐘添加到當前時間。
Time.now 1.hours
# => 2022-11-01 16:47:02.965861 0500
之后我們得到下一個半小時17:00:00
我可以從此代碼中獲取前半小時的時間,但無法找到下半小時的時間。
time = Time.now - 30.minutes
# => 2022-11-01 15:22:59.942013 0500
Time.at((time.to_time.to_i/1800).round * 1800).to_datetime
# => Tue, 01 Nov 2022 15:00:00 0500
uj5u.com熱心網友回復:
如果我理解正確,您想要映射:
- 15:00-15:29 至 17:00
- 15:30-15:59 至 17:30
advance您可以使用有條件的and來做到這一點change:
t = Time.current
if t.min < 30
t.advance(hours: 2).change(min: 0)
else
t.advance(hours: 1).change(min: 30)
end
uj5u.com熱心網友回復:
據我了解,您想將時間四舍五入到下一個 30 分鐘標記,即如果它在5:01 and 5:29您想要完成的時間之間5:30
為此,您可以這樣做
time = Time.now 1.hours
ceil_minutes = 30.minutes
Time.at((time.to_f / ceil_minutes).ceil * ceil_minutes)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/524502.html
下一篇:Ruby條件陳述句最佳實踐
