tmp-reaper
Version:
Reap old files from directories
59 lines (55 loc) • 1.15 kB
JavaScript
;
/**
* Convert a string into milliseconds
* Look for integers/floats followed by a unit, it's pretty permissive
* Ex: 4h20m10s
* 2 days and 12 hours
* 0.5 hour, 25 minutes
* @param {String} str
* @return {Number} ms
*/
module.exports = function toMs(str) {
if (typeof str != 'string') { return str; }
if (/^[0-9]+$/.test(str)) { return parseInt(str, 10); }
str = str.toLowerCase();
var ms = 0;
var reg = /([0-9]+(?:\.[0-9]+)?)[ ]*?([a-z]+)/gi;
var match;
var multi;
var s = 1000;
var m = s * 60;
var h = m * 60;
var d = h * 24;
match = reg.exec(str);
while (match) {
switch (match[2]) {
case "s":
case "sec":
case "second":
case "seconds":
multi = s;
break;
case "m":
case "min":
case "minute":
case "minutes":
multi = m;
break;
case "h":
case "hour":
case "hours":
multi = h;
break;
case "d":
case "day":
case "days":
multi = d;
break;
default:
multi = 0;
}
ms += parseFloat(match[1]) * multi;
match = reg.exec(str);
}
return Math.floor(ms);
};