【问题标题】:Adding times in ruby on rails在 ruby​​ on rails 中添加时间
【发布时间】:2010-07-23 14:20:50
【问题描述】:

我目前有一个名为 Job 的模型,它有一个名为 CPU 的属性。这对应于作业正在运行的 CPU 时间。我想为特定日期添加所有工作的所有时间属性。此列的时间格式为 00:00:00。因此我认为这会起作用:

def self.cpu_time
  sum(:cpu)
end

返回以下“Sat Jan 01 00:00:00 UTC 2000”。

对于我的测试数据,我使用了以下 cpu 时间: 00:00:46 00:26:46

任何帮助将不胜感激

这解决了我的问题,虽然它似乎不是轨道方式:

def self.cput
    @times = find(:all,
                :select => 'cput')
   @total_time =0
    for time in @times do  
      @total_time += time.cput.to_i - 946684800
      end
   @total_time  

  end

【问题讨论】:

    标签: ruby-on-rails time sum


    【解决方案1】:

    您没有说明您为 cpu 列使用的数据类型。我个人会以秒为单位存储它,然后在求和后转换为小时、分钟和秒。

    【讨论】:

    • 你建议我如何以秒为单位存储时间?我目前正在解析一个 XML 文件,其中 CPU 时间节点也是时间格式 00:00:00。如何从该格式更改为秒?
    • 一个 Time 对象代表一个特定的时间,而不是一个时间长度。如果要存储时间长度,请存储秒数。您可以使用h,m,s = "01:12:34".split(':'); h.to_i * 3600 + m.to_i * 60 + s 将“00:00:00”字符串转换为秒
    猜你喜欢
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多