How to add 10 days to current time in Rails

前端 未结 6 984
一向
一向 2020-12-07 12:38

I tried doing something like

Time.now + 5.days

but that doesn\'t work, even though I vaguely remember seeing, and being very impressed, wi

相关标签:
6条回答
  • 2020-12-07 13:27

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

    Date.today() + 5
    
    0 讨论(0)
  • 2020-12-07 13:29

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

    DateTime.now.days_since(10)
    
    0 讨论(0)
  • 2020-12-07 13:30

    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
    0 讨论(0)
  • 2020-12-07 13:32

    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.

    0 讨论(0)
  • 2020-12-07 13:32

    Try this on Rails

    Time.new + 10.days 
    

    Try this on Ruby

    require 'date'
    DateTime.now.next_day(10).to_time
    
    0 讨论(0)
  • 2020-12-07 13:33

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

    0 讨论(0)
提交回复
热议问题