Ответ 1
Rails обычно использует Time
, а не DateTime
. Почему бы вам не сделать Time.now - self.created_at
? Затем вы можете конвертировать от секунд до часа, разделив их на 3600.
Я хотел бы написать простую функцию, чтобы сказать через несколько часов:
Сколько времени прошло с момента создания?
Мои попытки:
-time = DateTime.now.hour - (self.created_at.hour)
Кто-нибудь знает, как это сделать в Ruby on Rails?
Rails обычно использует Time
, а не DateTime
. Почему бы вам не сделать Time.now - self.created_at
? Затем вы можете конвертировать от секунд до часа, разделив их на 3600.
Получил!. Сначала вы должны убедиться, что ваши данные в одних и тех же данных будут вычтены из того, будет ли это время или дата. Я выбрал время. Затем вы разделите его на Ruby, построенный во времени методами. Это означает, сколько дней, но это также может быть, 1.hour. и др.
(Time.now - self.created_at.to_time)/1.day
Вы ищете функцию 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