Sha256: 4dc7f5f200b99f0d2548ad9c150936b06afcf13709c691300cd40bfea9e23385
Contents?: true
Size: 1.52 KB
Versions: 9
Compression:
Stored size: 1.52 KB
Contents
/** * Helpers. */ var s = 1000; var m = s * 60; var h = m * 60; var d = h * 24; /** * Parse or format the given `val`. * * @param {String|Number} val * @return {String|Number} * @api public */ module.exports = function(val){ if ('string' == typeof val) return parse(val); return format(val); } /** * Parse the given `str` and return milliseconds. * * @param {String} str * @return {Number} * @api private */ function parse(str) { var m = /^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i.exec(str); if (!m) return; var n = parseFloat(m[1]); var type = (m[2] || 'ms').toLowerCase(); switch (type) { case 'years': case 'year': case 'y': return n * 31557600000; case 'days': case 'day': case 'd': return n * 86400000; case 'hours': case 'hour': case 'h': return n * 3600000; case 'minutes': case 'minute': case 'm': return n * 60000; case 'seconds': case 'second': case 's': return n * 1000; case 'ms': return n; } } /** * Format the given `ms`. * * @param {Number} ms * @return {String} * @api public */ function format(ms) { if (ms == d) return (ms / d) + ' day'; if (ms > d) return (ms / d) + ' days'; if (ms == h) return (ms / h) + ' hour'; if (ms > h) return (ms / h) + ' hours'; if (ms == m) return (ms / m) + ' minute'; if (ms > m) return (ms / m) + ' minutes'; if (ms == s) return (ms / s) + ' second'; if (ms > s) return (ms / s) + ' seconds'; return ms + ' ms'; }
Version data entries
9 entries across 9 versions & 1 rubygems