這應該很簡單,但是我遇到了似乎失敗的邊緣情況,我做錯了什么,這讓我有點困惑。我有這樣的方法:
def self.needs_updating?(last_updated_time, time_since_update)
return false if last_updated_time.nil?
time_since_update < last_updated_time
end
使用以下語法呼叫它:
Tools::Utils.needs_updating?(@entry.updated_at, 15.minutes.ago)
我想要做的是發現@entry 是否至少在 15.minutes.ago 之前更新。如果它已在 20.minutes.ago 之前更新,則應回傳 true,如果已在 1.minute.ago 更新,則應回傳 false。
我想我可能需要在那里插入 DateTime.now.utc 。但是我該怎么做才能繼續使用 Rails 成語(14.minutes.ago, 1.hour.ago etc..)?
謝謝!
uj5u.com熱心網友回復:
它應該是
def self.needs_updating?(last_updated_time, time_since_update)
return false if last_updated_time.nil?
last_updated_time < time_since_update
end
如果您想要 UTC 時間,請使用last_updated_time.utc < time_since_update.utc
如果您想在當地時間使用時間last_updated_time.localtime < time_since_update.localtime
例子
last_updated_time = @entry.updated_at
=> 2022-05-11 22:30:11 0200
time_since_update = 15.minutes.ago
=> 2022-05-12 22:35:15 0200
last_updated_time < time_since_update
=> true
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/473768.html
