Musique/node_modules/human-time/human.js

40 lines
1 KiB
JavaScript
Raw Permalink Normal View History

/**
* Print a human readable timestamp to the terminal
* given a number representing seconds
*
* Author: Dave Eddy <dave@daveeddy.com>
* Date: 8/18/2014
* License: MIT
*/
module.exports = human;
function human(seconds) {
if (seconds instanceof Date)
seconds = Math.round((Date.now() - seconds) / 1000);
var suffix = seconds < 0 ? 'from now' : 'ago';
seconds = Math.abs(seconds);
var times = [
seconds / 60 / 60 / 24 / 365, // years
seconds / 60 / 60 / 24 / 30, // months
seconds / 60 / 60 / 24 / 7, // weeks
seconds / 60 / 60 / 24, // days
seconds / 60 / 60, // hours
seconds / 60, // minutes
seconds // seconds
];
var names = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second'];
for (var i = 0; i < names.length; i++) {
var time = Math.floor(times[i]);
var name = names[i];
if (time > 1)
name += 's';
if (time >= 1)
return time + ' ' + name + ' ' + suffix;
}
return '0 seconds ' + suffix;
}