2013-08-05 29 views
0

为什么我不能使用Ruby获取明天的日期?下面是一些经常工作失败的东西:为什么我不能使用Ruby获取明天的日期?

Time.now.tomorrow 
Date.tomorrow 
Date.current.tomorrow 
Date.current+1 

我找不出什么问题。我在Windows上使用Ruby 1.8.7,这可能是问题所在。

任何帮助表示赞赏。

+0

显示的错误是什么? –

+1

他们是如何失败?有错误吗?日期错了吗? – thegrinner

+0

你还没有给我们任何工作。您的Ruby生态系统最近发生了什么变化要失去'.tomorrow',你不会加载Rails或Active Support日期库。 –

回答

1

只需使用the succ method within 'date'

require 'date' 
d = Date.new(2013,8,5) 
d = d.succ 

在REPL,d.to_s产生的"2013-08-06"输出。

+1

我想出了一些阻止我的东西。我忘记了在irb中输入'require ruby​​gems'。我的完整解决方案现在是'require date'' 'd = Date.new(Time.now.year,Time.now.month,Time.now。天)' 'd = d.succ.to_s' ...从来没有得到主动支持去做我想做的事。不知道为什么。 –

3

这些都是rails(特定的Active Support)添加的东西。如果你正在编写一个非Rails项目,那么你将无法使用它们,而不需要适当的Active Support支持。

例如:

require 'active_support/core_ext/date' 
require 'active_support/core_ext/time' 

应该在大多数的加入DateTime功能带来的。

1

请参阅Active Support的“Extensions to Time”。

整个页面都是关于如何挑选您需要的扩展,而不是整个Active Support库。

你的目的,你可能需要:

require 'active_support/core_ext/time/calculations' 

如果不掌握核心扩展,那么你应该升级你的Rails,但可以打破任何旧的Rails应用,你可能有。如果你使用的是Ruby 1.8.7,那么赔率是很好的,你已经过时了。此时,您应该了解如何使用RVM或rbenv来管理沙盒中的Ruby安装,或者与其Windows相同。

相关问题