如何在Rails中将当前时间增加10天


Answers:


284

Time.now + 10.days

甚至

10.days.from_now

两者肯定都可以。您确定您不仅在Ruby中,而且还在Rails中?

如果您绝对在Rails中,那么您打算从哪里运行它?请注意,必须加载Active Support。


@yuval它工作在轨道上,而不是ruby..Think你已完成了,但只是去帮助别人
Catmandu

1
这真是太棒了。我爱我一些Ruby和Rails。
wpp 2014年

5
有细微的差别。Time.now + 10.days始终会选择您的系统时区,而10.days.from_now如果rails config中未设置任何内容,则会选择UTC时区。
Babistalikesflyingonrails

通常,最好使用Time.zone.now代替Time.now
x-yuri

21

daysyears等等,都是积极支持的一部分,所以这不会工作irb,但它应该工作中rails console


是的-当场。无法在香草红宝石中做到这一点。
Yuval Karmi

1
也可以在irb中使用。如果您安装了gem,则只需require 'active_support/time'在会话开始时或在使用其命令之前执行a
darkdefender27 '18

10

这绝对有效,并且我需要在当前日期加上几天的地方使用它:

Date.today() + 5

10

其他一些选择,仅供参考

-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] 仅日期不包含时间


2

在Ruby上尝试一下。它将在将来指定的天数内返回一个新的日期/时间

DateTime.now.days_since(10)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.