Попробуйте что-то вроде этого;
function humanise (diff) {
// The string we're working with to create the representation
var str = '';
// Map lengths of `diff` to different time periods
var values = [[' year', 365], [' month', 30], [' day', 1]];
// Iterate over the values...
for (var i=0;i<values.length;i++) {
var amount = Math.floor(diff / values[i][1]);
// ... and find the largest time value that fits into the diff
if (amount >= 1) {
// If we match, add to the string ('s' is for pluralization)
str += amount + values[i][0] + (amount > 1 ? 's' : '') + ' ';
// and subtract from the diff
diff -= amount * values[i][1];
}
}
return str;
}
Ожидается, что аргумент - это разница в днях, которые вы хотите представить. Предполагается, что месяц составляет 30 дней, а год - 365.
Вы должны использовать это так;
$('#savings-goal span').text(humanise(timeToGoal));
http://jsfiddle.net/0zgr5gfj/