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