W Rubim, jak to zrobić Time.now + 10.hours
?
Czy istnieje odpowiednik dla secs
i mins
? Na przykład:
Time.now + 15.mins
ruby-on-rails
ruby
time
keruilin
źródło
źródło
10 + Time.now
::TypeError: Time can't be coerced into Fixnum
aleTime.now + 10
działa .. dla wszystkich, którzy mają ten sam problem;)Odpowiedzi:
Ruby (język programowania) nie ma
10.hours
, jest toActiveSupport
część Ruby on Rails (framework sieciowy). I tak, ma obaminutes
iseconds
metody.Jednak
Time#+
(metoda + w wystąpieniach Time) zwraca nowe wystąpienie Time, czyli tyle sekund w przyszłości. Więc bez cukru Ruby on Rails możesz po prostu zrobić:irb> t = Time.now #=> 2011-08-03 22:35:01 -0600 irb> t2 = t + 10 # 10 Seconds #=> 2011-08-03 22:35:11 -0600 irb> t3 = t + 10*60 # 10 minutes #=> 2011-08-03 22:45:01 -0600 irb> t4 = t + 10*60*60 # 10 hours #=> 2011-08-04 08:35:01 -0600
źródło
Jeśli korzystasz z ActiveSupport, szukasz pełnej wersji
.minutes
i.seconds
.Time.now + 10.minutes Time.now + 10.seconds
źródło
Również w ActiveSupport możesz:
10.minutes.from_now 10.minutes.ago
źródło
Myślę, że mówisz o rozszerzeniach dodanych przez Railsy. Myślę, że potrzebujesz
15.minutes
.Aby uzyskać więcej informacji, zobacz rozszerzenia Active Support Core Extensions dla daty, daty, godziny i godziny .
źródło
Obiekt czasu
time = Time.now
Dodawanie minut do obiektu czasu:
time + 5.minutes
źródło