0

如果我有@time = Time.now.strftime("%Y-%m-%d %H:%M:%S")

我怎样才能将这个时间减少 15 分钟?

我已经尝试过这个 :: @reducetime = @time-15.minutes,在控制台上工作正常,但在执行时出错。除此之外还有什么办法可以解决这个问题。

谢谢

4

1 回答 1

3

您的问题是您在将时间视为时间之前将其格式化为字符串。这会更有意义:

@time       = Time.now
@reducetime = @time - 15.minutes

# And then later when you're reading to display @time...
formatted_time = @time.strftime("%Y-%m-%d %H:%M:%S")

在您准备好显示数据之前,您不应该格式化您的数据。

如果您必须具有@time格式化时间,那么您将不得不在计算之前对其进行解析@reducetime

@reducetime = (DateTime.strptime(@time, "%Y-%m-%d %H:%M:%S") - 15.minutes).to_time
于 2011-05-24T07:51:01.250 回答