如果我有@time = Time.now.strftime("%Y-%m-%d %H:%M:%S")
,
如何将这段时间减少15分钟?
我已经尝试过这个:: @reducetime = @time-15.minutes
,在控制台上运行正常,但在执行时会出错。除此之外有没有办法解决这个问题。
由于
答案 0 :(得分: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