【问题标题】:looking for a method that will show tomorrow's date in ruby寻找一种可以在 ruby​​ 中显示明天日期的方法
【发布时间】:2013-06-06 20:18:30
【问题描述】:

虽然我已经得到了问题的答案,但我还是决定对其进行编辑。

我一直在寻找任何可以显示明天日期的 Ruby 方法。 如果它也显示时间就可以了,我将格式化它的输出。

Time.now 给出当前日期、时间和时区:

Time.now
=> 2013-06-11 13:09:02 +0900

我怎样才能使用这种方法来获取明天的日期?

如果有其他方法可以做到就ok了。

【问题讨论】:

  • 您的问题具有误导性/不清楚。一开始,您似乎在寻找一个日期(没有时间),但到最后,您似乎在寻找一种方法,可以将时间精确地加上 24 小时。
  • Oscar,这种评论是徒劳的,表明你不了解 Stack Overflow 的工作原理。如果您提出一个好问题并提供所需的信息,您将获得支持。如果不这样做,您将获得反对票。但是,你为什么在乎?得到答案不应该比得到意义不大的分数更重要吗?
  • Ruby 的 Date 类有 + operator,用于向 Date 对象添加值。第一个例子是:Date.new(2001,2,3) + 1 #=> #<Date: 2001-02-04 ...>
  • @oscar 我没有浪费时间投票。它是在一个实例中完成的。不过,我可能浪费时间阅读您的问题。顺便说一句,您接受了一个使用 Rails 方法的答案,即使您在问题中明确提到您没有使用 Rails 大声笑。这增加了您的问题不清楚的另一个原因。
  • @oscar,虽然当然欢迎每个用户表达他/她自己的意见,但您可能要考虑到某些用户比其他大多数用户更有经验。拥有 40K+ 的代表点,Tin Man 确实可以很好地理解您的意思,我认为像您这样的新用户不应该贬低顶级用户的观点。坦率地说,如果您听从他们的建议,您可能会获得更有成效的体验。

标签: ruby datetime time


【解决方案1】:
require 'date'

tomorrow = Date.today + 1

tomorrow 是一个日期对象。你可以按你想要的格式打印出来。

【讨论】:

  • 这是正确答案。首先,它是一个纯 Ruby 解决方案。其次,它返回一个Date 对象,这正是原帖中所要求的。
  • 你也可以写tomorrow = 1.days.from_now,但这是Rails
【解决方案2】:

试试:

Time.now + 24*60*60

(已编辑:xaxxon 是对的。我的早期版本使用了 Rails 的功能)

【讨论】:

  • 1.day 不是红宝石。 ruby-1.9.2-p290 :001 > 1.day NoMethodError: undefined method day' for 1:Fixnum` 来自问题:请注意,我不是指 Rails,这是关于 Ruby。不在 2.0 中,所以我不确定您指的是什么“早期版本”:ruby-doc.org/core-2.0/Fixnum.html
  • @Stu Gla,还是谢谢你。因为,你的回答对我有用。
【解决方案3】:

ruby 2.6+ 辅助方法

Date.tomorrow

【讨论】:

    【解决方案4】:

    类似于 Stu Gla:

    today = Time.now
    tomorrow = today + (60 * 60 * 24)
    

    然后您可以使用 .strftime 方法来格式化...示例:

    puts tomorrow.strftime("%F")
    # => 2014-08-07
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多