2011-08-04 13 views
54

Así que en rubí que puede hacer Time.now + 10.hours ...minutos a Tiempo objeto

No hay un equivalente para los segundos y minutos? Por ejemplo, Time.now + 15.mins.

+0

Ahh, por supuesto ... – keruilin

+0

no funciona al revés: '10 + Time.now': 'TypeError: Time no puede forzarse en Fixnum' pero' Time.now + 10' funciona ... para todos los que tienen el mismo problema;) –

Respuesta

97

Ruby (el lenguaje de programación) no tiene 10.hours, eso es ActiveSupport como parte de Ruby on Rails (el framework web). Y sí, tiene los métodos minutes y seconds.

Sin embargo, Time#+ (el método + en instancias de tiempo) devuelve una nueva instancia de tiempo que es muchos segundos en el futuro. Así que sin azúcar Ruby on Rails, sólo tiene que hacer:

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 
+0

Casi me vuelvo loco, gracias por la ayuda –

58

Si está utilizando ActiveSupport, lo que busca es la plena .minutes y .seconds.

0

Creo que estás hablando de extensiones añadidas por Rails. Creo que es necesario 15.minutes

Ver docs here

10

También en ActiveSupport que puede hacer:

10.minutes.from_now 

10.minutes.ago 
Cuestiones relacionadas