Как добавить 10 дней к текущему времени в Rails

Я пробовал делать что-то вроде

Time.now + 5.days

но это не работает, хотя я смутно помню, что был очень впечатлен, имея возможность сделать что-то вроде 2.years и т.д.

Как это сделать в Rails 3?

Ответ 1

Используйте

Time.now + 10.days

или даже

10.days.from_now

Обе определенно работают. Вы уверены, что находитесь в Rails, а не только в Ruby?

Если вы определенно находитесь в Rails, с чего вы пытаетесь запустить это? Обратите внимание, что активная поддержка должна быть загружена.

Ответ 2

days, years и т.д. являются частью Active Support, поэтому это не будет работать в irb, но оно должно работать в rails console.

Ответ 3

Это определенно работает, и я использую это везде, где мне нужно добавлять дни к текущей дате:

Date.today() + 5

Ответ 4

Некоторые другие параметры, только для справки

-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)

Просто укажите все параметры, которые я знаю:

[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10

Итак, в чем разница между ними, если мы заботимся о часовом поясе:

  • [1, 4] С системным часовым поясом
  • [2, 3] С настройкой часового пояса вашего приложения Rails
  • [5] Дата только времени не включена в результат

Ответ 5

Попробуйте это на Rails

Time.new + 10.days 

Попробуйте это на Ruby

require 'date'
DateTime.now.next_day(10).to_time