-
-
Save rauchg/1503944 to your computer and use it in GitHub Desktop.
Or maybe by ms
you should mean s
. I'd expect "5ms" to mean "5 milliseconds", or 5
, but 5s
to be 5 seconds
or 5000.
sorry I meant 5s
I added ms
as well
nice one but I would do few changes here
(function (R) {
var _ = {ms:1, s:1000};
_.m = _.s * 60;
_.h = _.m * 60;
_.d = _.h * 24;
function ms (s) {
if (s == Number(s)) return Number(s);
if (/(\d*.?\d+)([mshd]+)/.test(s.toLowerCase()) && R.$2 in _) return R.$1 * _[R.$2];
throw new Error('Unknown time unit: ' + R.$2);
}
if ('object' == typeof window) {
window.ms = ms;
} else {
module.exports = ms;
}
})(RegExp);
ms(".5s");
cheers
Do you seriously use setTimeout(fn, ms('2d'));
??
it can be used as cronjob scheduler for node.js so why not ...
Made a few changes.
- Shorter (@WebReflection)
- Works with
'.5s'
type strings (@WebReflection) - Cached the regular expression
- Returns NaN instead of throwing. More consistent with other number manipulation functions
+1 Just tried to require this but was not in npm!
Please publish :)
D
Published to npm as ms
This is my lighter version: https://gist.github.com/1997544
Same output as original :)
BTW, the function is very useful indeed, thanks mate!
@tubalmartin Thanks for the contribution! Unfortunately, it fails two tests. I moved everything to a repository here for you to fork:
https://github.com/guille/ms.js
@guille Thanks for the tests, I'll run them and try to fix those failing!
@guille Pull request made. It passes all tests now :)
https://github.com/tubalmartin/ms.js
ms('5ms') // 5000
...and by 5000 you mean 5 :P
well seconds where left out?
_.ms = 1;
_.s = 1000;
_.m = _.s * 60;