如果我有@time = Time.now.strftime("%Y-%m-%d %H:%M:%S")
,
我怎样才能将这个时间减少 15 分钟?
我已经尝试过这个 :: @reducetime = @time-15.minutes
,在控制台上工作正常,但在执行时出错。除此之外还有什么办法可以解决这个问题。
谢谢
如果我有@time = Time.now.strftime("%Y-%m-%d %H:%M:%S")
,
我怎样才能将这个时间减少 15 分钟?
我已经尝试过这个 :: @reducetime = @time-15.minutes
,在控制台上工作正常,但在执行时出错。除此之外还有什么办法可以解决这个问题。
谢谢
您的问题是您在将时间视为时间之前将其格式化为字符串。这会更有意义:
@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