Я пробовал сделать что-то вроде
Time.now + 5.days
но это не работает, хотя я смутно помню, как видел и был очень впечатлен тем, что могу делать что-то вроде 2.years
и т. д.
Как мне это сделать в Rails 3?
ruby-on-rails
datetime
ruby-on-rails-3
activesupport
Юваль Карми
источник
источник
Ответы:
Использовать
или даже
Оба определенно работают. Вы уверены, что используете Rails, а не только Ruby?
Если вы определенно используете Rails, откуда вы пытаетесь это запустить? Обратите внимание, что активная поддержка должна быть загружена.
источник
Time.now + 10.days
всегда выбирает часовой пояс вашей системы, тогда как10.days.from_now
выбирает часовой пояс UTC, если в конфигурации rails ничего не установлено.Time.zone.now
вместоTime.now
.days
,years
и т. д. являются частью активной поддержки, так что это не работаетirb
, но должно работатьrails console
.источник
require 'active_support/time'
в начале сеанса или перед тем, как использовать его командыЭто определенно работает, и я использую это везде, где мне нужно добавить дни к текущей дате:
источник
Некоторые другие варианты, просто для справки
Просто перечислите все известные мне варианты:
Итак, в чем разница между ними, если нам важен часовой пояс:
[1, 4]
С системным часовым поясом[2, 3]
С настройкой часового пояса вашего приложения Rails[5]
Только дата, в результат не включено времяисточник
Попробуйте это на Rails
Попробуйте это на Ruby
источник
Попробуйте это на Ruby. Он вернет новую дату / время через указанное количество дней в будущем
источник