Jak dodać minuty do obiektu Time


79

W Rubim, jak to zrobić Time.now + 10.hours ?

Czy istnieje odpowiednik dla secsi mins? Na przykład:

Time.now + 15.mins

1
To nie działa w drugą stronę 10 + Time.now:: TypeError: Time can't be coerced into Fixnumale Time.now + 10działa .. dla wszystkich, którzy mają ten sam problem;)
Yo Ludke

Odpowiedzi:


144

Ruby (język programowania) nie ma 10.hours, jest to ActiveSupportczęść Ruby on Rails (framework sieciowy). I tak, ma oba minutesi secondsmetody.

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

@NailsonLandim, możesz również uznać Timerizer za przydatny. „Składnia czasu Railsów bez Railsów”.
Jeff Dickey

Odpowiednią częścią dokumentacji rozszerzeń rdzenia jest guide.rubyonrails.org/ ... i kolejne dwie sekcje.
The Tin Man

77

Jeśli korzystasz z ActiveSupport, szukasz pełnej wersji .minutesi .seconds.

Time.now + 10.minutes
Time.now + 10.seconds

20

Również w ActiveSupport możesz:

10.minutes.from_now

10.minutes.ago


1

Obiekt czasu

time = Time.now

Dodawanie minut do obiektu czasu:

time + 5.minutes

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.