Intenté hacer algo como
Time.now + 5.days
pero eso no funciona, aunque recuerdo vagamente haber visto y estar muy impresionado con poder hacer algo como, 2.yearsetc.
¿Cómo hago eso en Rails 3?
Intenté hacer algo como
Time.now + 5.days
pero eso no funciona, aunque recuerdo vagamente haber visto y estar muy impresionado con poder hacer algo como, 2.yearsetc.
¿Cómo hago eso en Rails 3?
Respuestas:
Utilizar
Time.now + 10.days
o incluso
10.days.from_now
Ambos definitivamente funcionan. ¿Estás seguro de que estás en Rails y no solo en Ruby?
Si definitivamente estás en Rails, ¿desde dónde intentas ejecutar esto? Tenga en cuenta que se debe cargar Active Support.
Time.now + 10.dayssiempre recoge la zona horaria de su sistema, mientras 10.days.from_nowque recogerá la zona horaria UTC si no se establece nada en la configuración de rieles.
Time.zone.nowen lugar de Time.now.
days, years, Etc., son parte de la ayuda activa, por lo que esto no funcionará en irb, pero debería funcionar en rails console.
require 'active_support/time'al comienzo de la sesión o antes de usar sus comandos
Algunas otras opciones, solo como referencia.
-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)
Solo enumera todas las opciones que conozco:
[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10
Entonces, ¿cuál es la diferencia entre ellos si nos preocupamos por la zona horaria?
[1, 4] Con zona horaria del sistema[2, 3] Con la zona horaria de configuración de su aplicación Rails[5] Solo fecha sin hora incluida en el resultadoPrueba esto en Rails
Time.new + 10.days
Prueba esto en Ruby
require 'date'
DateTime.now.next_day(10).to_time