Как добавить 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