length
Version:
Time lengths for humans
1 lines • 651 B
JavaScript
var length=function(){"use strict";var e=/^\s*([0-9]*\.?[0-9]+)\s*([A-Za-z ]*)\s*$/,r="No time length type: ",o={},t=[[3156e7,["y","year"]],[262974e4,["mo","month"]],[864e5,["d","day"]],[36e5,["h","hour"]],[6e4,["m","minute"]],[1e3,["s","sec","second"]],[1,["ms","millisecond"]],[.001,["us","microsecond"]]];for(var n in t){var s=t[n][1];s.push(s[s.length-1]+"s"),s.forEach(function(e){o[e]=t[n][0]})}return function(t,n,s,i){if(n=n||"ms","number"==typeof t&&(t=t+""+n),s=e.exec(t),!s)throw Error("Could not parse time length: "+t);if(i=s[2].replace(/ +/g,"")||"ms",!o[i])throw Error(r+i);if(!o[n])throw Error(r+n);return Number(s[1])*(o[i]/o[n])}}();