我想寫一個簡單的函數說幾小時:你如何從日期時間減去?
已經創建了多少時間?
我嘗試:
-time = DateTime.now.hour - (self.created_at.hour)
有誰知道如何做到這一點的Ruby on Rails的?
我想寫一個簡單的函數說幾小時:你如何從日期時間減去?
已經創建了多少時間?
我嘗試:
-time = DateTime.now.hour - (self.created_at.hour)
有誰知道如何做到這一點的Ruby on Rails的?
的Rails通常使用Time
,不DateTime
。你爲什麼不做Time.now - self.created_at
?然後,您可以將秒數轉換爲小時數除以3600.
您正在尋找time_ago_in_words(from_time,include_seconds = false)函數。下面是從文檔的一些例子:
time_ago_in_words(3.minutes.from_now) # => 3 minutes
time_ago_in_words(Time.now - 15.hours) # => 15 hours
time_ago_in_words(Time.now) # => less than a minute
from_time = Time.now - 3.days - 14.minutes - 25.seconds # => 3 days
知道了!首先,您必須確保您的數據處於相同的數據中,並將其從Time或DateTime中扣除。我選擇了時間。然後你用Ruby的內置時間方法分割它。這轉換成多少天,但也可以是,1小時。等
(Time.now - self.created_at.to_time)/1.day
這將無法正常工作,因爲你只是比較小時,所以如果超過一天通過它將是不準確的,但否則它應該仍然計算爲一個數字。相反,你可以直接使用'DateTime.now - self.created_at',這會在幾秒鐘內給你時間差。你需要做什麼? – Karl 2010-07-23 00:19:55
這不起作用,因爲除非它的字符串不能從DateTime中減去。如果它是一個字符串,你如何再次顯示它 – Trip 2010-07-23 01:42:07