If storing duration as integer seconds... question on building a helper

Ok, I'm new to rails (and Ruby)...

I'm trying to figure out the best practice for handling a duration
field (for example "time it takes someone to run a mile." )

All I care about is seconds (not milliseconds) so figured I'd store
the field as an integer.

I want to allow the user to enter in the time manually as:

//1 minute 5 seconds:
1:05
OR
01:05

//2 hours 4 minutes 6 seconds:
2:04:06
OR
02:04:06

I have a helper that will convert seconds to a time display as:

def seconds_to_time seconds
     Time.at(seconds).gmtime.strftime('%R:%S')
end

But how should I handle the conversion the other way around from the
input (ie convert 01:35 to seconds?)
Do I need to do some complex parsing of the String itself parsing out
: (remember it could be xx:xx:xx or just xx:xx )
or can I somehow leverage Time.parse ?

I would think this would come up quite often so there must be a best
practice or easy way to handle this kind of thing.

Thanks in advance

I currently decided to just use something like:

def time_to_seconds time_display
     time = time_display.split(":")
     seconds = 0
     modifiers = [ 1, 60, 360 ]
     time.each_with_index do | t, i |
        seconds = seconds + ( t.to_i * modifiers[time.length -1 - i] )
     end
     return seconds
  end

I currently decided to just use something like:

def time_to_seconds time_display
    time = time_display.split(":")
    seconds = 0
    modifiers = [ 1, 60, 360 ]
    time.each_with_index do | t, i |
       seconds = seconds + ( t.to_i * modifiers[time.length -1 - i] )
    end
    return seconds
end

If you're just looking for a quick way to convert from hh:mm:ss to
seconds, how about:

time_string.split(':').inject(0){|a, m| a = a * 60 + m.to_i}

This presumes that the smallest increment in the string is seconds,
and the largest hours. However, that is how you described the problem.

WDYT?

Wow! That looks awesome. I'm new to ruby so just looked into the
inject method. I'll test it shortly.

Thanks a lot. (It looks like it should work if you provided just
minutes and seconds 10:04 or hours:min:sec 1:14:05 )