web-dev-qa-db-fra.com

Ajouter des minutes à l'objet Time

Donc en Ruby vous pouvez faire Time.now + 10.hours ...

Il n'y a pas d'équivalent pour les secondes et les minutes? Par exemple, Time.now + 15.mins.

65
keruilin

Ruby (le langage de programmation) n'a pas 10.hours, c'est ActiveSupport dans le cadre de Ruby on Rails (le framework web). Et oui, il a les deux minutes et seconds méthodes.

Toutefois, Time#+ (la méthode + sur les instances Time) renvoie une nouvelle instance Time qui représente autant de secondes à l'avenir. Donc sans Ruby on Rails sucre, vous pouvez simplement faire:

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
126
Phrogz

Si vous utilisez ActiveSupport, ce que vous recherchez est le .minutes et .seconds.

Time.now + 10.minutes
Time.now + 10.seconds
66
twe4ked

Dans ActiveSupport, vous pouvez également:

10.minutes.from_now

10.minutes.ago
16
mahi-man

Je pense que vous parlez d'extensions ajoutées par Rails. Je pense que vous avez besoin de 15.minutes

Voir docs ici

1
Gishu