【问题标题】:How to show one hour later from now or one hour before now in ruby如何在红宝石中显示一小时后或一小时前
【发布时间】:2017-07-02 06:40:26
【问题描述】:
x = Time.now
y = 1.hours.from_now
z = 1.hours.before_now

如果这个问题太愚蠢,我很抱歉。我想知道在 ruby​​ 中显示前后一小时的有效方法。 感谢观看和帮助。

【问题讨论】:

  • 为了方便 Ruby 新手,请在需要时显示require(此处为require 'time')。

标签: ruby time


【解决方案1】:

Ruby 中没有这样的方法。你必须这样做:

Time.now + 1*60*60 # 1.hours.from_now -> 1 hour, 60 minutes, 60 seconds
Time.now - 1*60*60 # 1.hours.before_now -> 1 hour, 60 minutes, 60 seconds

或者你可以在你的项目中包含activesupport

【讨论】:

  • 你能告诉我为什么 1 乘以 60 和 60。为什么 60 应该是两倍而不是一。
  • @WawanSumardi:正如我在代码评论中所说的那样。一小时你有1,然后一小时你有60分钟,一分钟有60秒。因此,1*60*60,同样的 2 小时你有:2*60*60
【解决方案2】:

你也可以这样写:

当前时间:

x = Time.now => 2017-02-14 11:55:17 +0530

一小时前(一小时前):

y = x - 1.hour => 2017-02-14 10:55:17 +0530

y = 1.hour.ago => 2017-02-14 10:55:17 +0530 `# 在 rails v4.2 中可用

一小时后/自(一小时后):

z = x + 1.hour => 2017-02-14 12:55:17 +0530

z = 1.hour.since => 2017-02-14 12:55:17 +0530 # available in rails v4.2

注意:此计算在 x(存储时间)上执行,而不是实时(Time.now),但在以前的情况下,因为计算在实时(Time.now)上执行

【讨论】:

  • 这些方法在 rails v4.2 及更高版本中可用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多