diff --git a/source/Ox/js/String.js b/source/Ox/js/String.js index f071c72a..21a9aaef 100644 --- a/source/Ox/js/String.js +++ b/source/Ox/js/String.js @@ -104,6 +104,23 @@ Ox.pad = function(string, length, padding) { : (string + padding).slice(0, length); }; +/*@ +Ox.parseDuration Takes a formatted duration, returns seconds + > Ox.parseDuration('01:02:03') + 3723 + > Ox.parseDuration('3') + 3 + > Ox.parseDuration('2:') + 120 + > Ox.parseDuration('1::') + 3600 +@*/ +Ox.parseDuration = function(string) { + return string.split(':').reverse().slice(0, 3).reduce(function(p, c, i) { + return p + (parseFloat(c) || 0) * Math.pow(60, i); + }, 0); +}; + /*@ Ox.parsePath Returns the components of a path (str) -> Path