Функция для правильного склонения существительных в зависимости от числового значения:
var declOfNum = function(number, titles)
{
var cases = [2, 0, 1, 1, 1, 2];
return titles[
(number % 100 > 4 && number % 100 < 20)
?
2
:
cases[(number % 10 < 5) ? number % 10 : 5]
];
}Примеры использования для русского языка с временными единицами:
// дни
declOfNum(1, ['день', 'дня', 'дней']) // → 'день'
declOfNum(2, ['день', 'дня', 'дней']) // → 'дня'
declOfNum(11, ['день', 'дня', 'дней']) // → 'дней'
// часы
declOfNum(1, ['час', 'часа', 'часов']) // → 'час'
declOfNum(5, ['час', 'часа', 'часов']) // → 'часов'
// минуты
declOfNum(1, ['минута', 'минуты', 'минут']) // → 'минута'
declOfNum(21, ['минута', 'минуты', 'минут']) // → 'минута'
// секунды
declOfNum(1, ['секунда', 'секунды', 'секунд']) // → 'секунда'
declOfNum(11, ['секунда', 'секунды', 'секунд']) // → 'секунд'