How to add 10 days to current time in Rails

岁酱吖の 提交于 2019-12-17 15:37:11

问题


I tried doing something like

Time.now + 5.days

but that doesn't work, even though I vaguely remember seeing, and being very impressed, with being able to do something like 2.years etc.

How do I do that in Rails 3?


回答1:


Use

Time.now + 10.days

or even

10.days.from_now

Both definitely work. Are you sure you're in Rails and not just Ruby?

If you definitely are in Rails, where are you trying to run this from? Note that Active Support has to be loaded.




回答2:


days, years, etc., are part of Active Support, So this won't work in irb, but it should work in rails console.




回答3:


Some other options, just for reference

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

Just list out all options I know:

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

So now, what is the difference between them if we care about the timezone:

  • [1, 4] With system timezone
  • [2, 3] With config timezone of your Rails app
  • [5] Date only no time included in result



回答4:


This definitely works and I use this wherever I need to add days to the current date:

Date.today() + 5



回答5:


Try this on Rails

Time.new + 10.days 

Try this on Ruby

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



回答6:


Try this on Ruby. It will return a new date/time the specified number of days in the future

DateTime.now.days_since(10)


来源:https://stackoverflow.com/questions/4654457/how-to-add-10-days-to-current-time-in-rails

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!