En Ruby, ¿cómo lo hago Time.now + 10.hours
?
¿Existe un equivalente para secs
y mins
? Por ejemplo:
Time.now + 15.mins
ruby-on-rails
ruby
time
keruilin
fuente
fuente
10 + Time.now
::TypeError: Time can't be coerced into Fixnum
peroTime.now + 10
funciona ... para todos los que tienen el mismo problema;)Respuestas:
Ruby (el lenguaje de programación) no tiene
10.hours
, eso esActiveSupport
como parte de Ruby on Rails (el marco web). Y sí, tiene métodosminutes
yseconds
.Sin embargo,
Time#+
(el método + en las instancias de Time) devuelve una nueva instancia de Time que es esa cantidad de segundos en el futuro. Entonces, sin azúcar Ruby on Rails, simplemente puede 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
fuente
Si está utilizando ActiveSupport, lo que está buscando es la versión completa
.minutes
y.seconds
.Time.now + 10.minutes Time.now + 10.seconds
fuente
También en ActiveSupport puede hacer:
10.minutes.from_now 10.minutes.ago
fuente
Creo que estás hablando de extensiones agregadas por Rails. Creo que lo necesitas
15.minutes
.Consulte las Extensiones principales de Active Support para fecha, fecha y hora para obtener más información.
fuente
Objeto de tiempo
time = Time.now
Agregar minutos a un objeto de tiempo:
time + 5.minutes
fuente