Преобразование недель в месяцы в javascript

Я использую этот скрипт, чтобы начать временной интервал с заданной метки времени.

function startCounter (el, myStartTimestamp) { 

        var startTimestamp = parseInt(myStartTimestamp);                    

        setInterval(function() {                
            startTimestamp++;
            var timeStampMoment = moment.unix(startTimestamp);

            var 
            years = timeStampMoment.get('years'),
            months = timeStampMoment.get('month'),
            weeks = timeStampMoment.get('week'),
            days = timeStampMoment.get('day'),
            hours = timeStampMoment.get('hour'),
            minutes = timeStampMoment.get('minute'),
            seconds = timeStampMoment.get('second'),
            arr = [];

            if (years > 0) {
                arr.push(years == 1 ? '1 years ' : years + ' years');
             }
             if (months > 0) {
                arr.push(months == 1 ? '1 month ' : months + ' months');
             }
             if (weeks > 0) {
                arr.push(weeks == 1 ? '1 week ' : weeks + ' weeks');
             }
             if (days > 0) {
                arr.push(days == 1 ? '1 day ' : days + ' days');
             }
             if (hours > 0) {
                arr.push(hours == 1 ? '1 hr ' : hours + ' hrs');
             }
             if (minutes > 0) {
                arr.push(minutes > 1 ? minutes + ' mins' : minutes + ' min');
             }
             if (seconds > 0) {
                arr.push(seconds > 1 ? seconds + ' secs' : seconds + ' sec');
             }
             el.html(arr.join(' '));
         }, 1000);          
}

Теперь я хочу включить месяцы и годы тоже. Но как мне это сделать, поскольку общее количество дней в месяце может варьироваться?

Я обновил вопрос с помощью решения moment.js, но оно не совсем точное.

Эта отметка времени 1390896484 дает такой результат: 2014 лет 5 недель 2 дня 9 часов 10 минут 46 секунд (с добавлением нескольких секунд). Что мне не хватает?

Временная метка равна 01/28/14 в 8:08:04 утра UTC, поэтому я хотел бы, чтобы на выходе было написано «2 недели 3 дня», за которым следует количество «часов, минут и секунд».


person Newcoma    schedule 13.02.2014    source источник
comment
Зачем изобретать велосипед. momentjs.com   -  person Diodeus - James MacFarlane    schedule 13.02.2014
comment
Я пытался заставить moment.js делать именно это, но не могу понять, как получить тот же результат.   -  person Newcoma    schedule 13.02.2014
comment
Я второй использую momentjs. В этой библиотеке много хорошего.   -  person daekano    schedule 13.02.2014
comment
Вывод результата, который вы ожидаете, поможет   -  person Gerard Downes    schedule 14.02.2014
comment
возможный дубликат Moment.js, как получить неделю месяца? (стиль календаря Google)   -  person Paul Sweatte    schedule 20.12.2014