【问题标题】:How to Subtract Time in Rails?如何在 Rails 中减去时间?
【发布时间】:2017-04-14 12:23:43
【问题描述】:

我是 Ruby 和 Rails 的新手。 我在数据库中有一个时间类型列,它存储来自表单的用户时间输入。

<div class="col-md-12">
   <%= form_for(Gotime.new) do |f| %>
    <%= f.time_select :hours%>
    <%= f.submit "Submit" %>
    <% end %>
</div>

我需要从Gotime.last 中减去 X 分钟以获得新时间。似乎为了做到这一点,我需要以某种方式将Gotime 设置为开始时间,我将从该时间开始倒数Х 分钟。我怎样才能做到这一点?这个想法是正确的还是应该以其他方式完成?

【问题讨论】:

  • 什么是GotimeGotime.last
  • 减去x时间的一般方法是Gotime.last - 3.minutes
  • Gotime 是我使用“rails g model Gotime hours:time minutes:time”创建的表,Gotime.last 是用户在“小时”列中输入的最新时间。
  • 如果我写 我得到一个错误:NoMethodError in Gotimes#new undefined method `-' for #<0x007f97565fb820>

标签: ruby-on-rails time


【解决方案1】:

如果你有time

Gotime.last.time - 3.minutes

如果您有hoursminutes 列 你想用分钟减去时间:

obj = Gotime.last

time = DateTime.now.change({ hour: obj.hours, min: obj.minutes, sec: 0 })

time - 3.minutes

如果你有日期时间,你可以用它替换DateTime.now

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多