【发布时间】:2016-07-26 20:30:24
【问题描述】:
我使用的是 Rails 4.2.4。我有以下将时间(持续时间)转换为毫秒的方法……
Time.parse(convert_to_hrs(duration)).seconds_since_midnight * 1000
其中方法“convert_to_hrs”被定义为
def convert_to_hrs(string)
case string.count(':')
when 0
'00:00:' + string.rjust(2, '0')
when 1
'00:' + string
else
string
end
end
但是,如果持续时间非常长(例如“34:13:00” - 读取:34 小时、13 分钟和零秒),则上述操作会失败并出现错误
Error during processing: argument out of range
/Users/mikea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/time.rb:302:in `local'
/Users/mikea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/time.rb:302:in `make_time'
/Users/mikea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/time.rb:366:in `parse'
/Users/mikea/Documents/workspace/myproject/app/services/my_service.rb:25:in `block in process_page_data'
/Users/mikea/Documents/workspace/myproject/app/services/my_service.rb:22:in `each'
/Users/mikea/Documents/workspace/myproject/app/services/my_service.rb:22:in `process_page_data'
如何重写我的第一行以准确地将持续时间转换为毫秒?
【问题讨论】:
标签: parsing ruby-on-rails-4 time duration