seconds-to-human
Version:
simple seconds to humanized format
48 lines (42 loc) • 1.26 kB
JavaScript
// Generated by IcedCoffeeScript 1.7.1-b
(function() {
var to_human, _;
_ = require('lodash');
module.exports = to_human = function(secs) {
var count, i, label, labels, results, singular, str, times, _i, _len;
secs = +secs;
times = [secs / 60 / 60 / 24 / 365, secs / 60 / 60 / 24 / 30, secs / 60 / 60 / 24, secs / 60 / 60, secs / 60, secs];
labels = ['year', 'month', 'day', 'hour', 'minute', 'second'];
results = {};
i = 0;
for (_i = 0, _len = labels.length; _i < _len; _i++) {
label = labels[_i];
results[label] = times[i];
++i;
}
for (label in results) {
count = results[label];
if (count >= 1) {
if (count === 1) {
singular = true;
} else {
singular = false;
if (count.toString().indexOf('.') > -1) {
count = count.toFixed(1);
} else {
count = count;
}
}
return str = [count, label + (!singular ? 's' : '')].join(' ');
}
}
return new Error('Failed to convert seconds to human format');
};
/*
console.log to_human 3838
console.log to_human '3600'
console.log to_human 12
console.log to_human 1200
console.log to_human 3600*24*100
*/
}).call(this);