0

为什么我不能使用 Ruby 获取明天的日期?以下是一些正常工作但失败的事情:

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

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

任何帮助表示赞赏。

4

3 回答 3

3

这些都是 rails(特别是 Active Support)添加的东西。如果您正在编写一个非 Rails 项目,那么您将无法在没有适当的 Active Support 的情况下使用它们。

例如:

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

Date应该引入添加到和的大部分功能Time

于 2013-08-05T17:52:50.550 回答
1

只需使用以下succ方法'date'

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

在 REPL 中,d.to_s产生"2013-08-06".

于 2013-08-05T17:57:19.603 回答
1

请参阅 Active Support 的“时间延长”。

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

出于您的目的,您可能需要:

require 'active_support/core_ext/time/calculations'

如果您没有核心扩展,那么您应该升级您的 Rails,但这可能会破坏您可能拥有的任何旧 Rails 应用程序。如果您在 Ruby 1.8.7 上运行,那么很有可能您已经过时了。而且,此时,您应该阅读有关如何使用 RVM 或 rbenv 来管理沙盒中的 Ruby 安装,或它们的 Windows 等效项。

于 2013-08-05T18:17:14.927 回答