Показать сообщение отдельно
  #17 (permalink)  
Старый 13.08.2015, 15:58
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Делать было нечего, мб понадобится =)

/**
 * @param  {[string]} fromDate  [Дата, от которой нужно начинать отсчет дней. Образец - 13.08.2015 13:00]
 * @param  {[number]} daysToEnd [Кол-во дней]
 * @return {[object]}           [годы, месяцы, дни, часы, минуты, секунды]
 */
function dateDiff(fromDate, daysToEnd) {
        // [dd, mm, yyyy, hh, mm]
        fromDate = fromDate.replace(/[\.\s\:]/g, '/').split('/');
        
        // 86400000 - сутки
        var daysToEnd = daysToEnd * 86400000;

        // start = new Date(год, месяц, день).setHours(часы, минуты)
        var start   = new Date(fromDate[2], fromDate[1] - 1, fromDate[0]).setHours(fromDate[3], fromDate[4]) + daysToEnd,
            end     = Date.now(),
            diff    = (start - end) / 86400000;

        var years   = diff / 365,
            months  = (years - Math.floor(years)) * 12,
            days    = (months - Math.floor(months)) * 30,
            hours   = (days - Math.floor(days)) * 24,
            minutes = (hours - Math.floor(hours)) * 60,
            seconds = (minutes - Math.floor(minutes)) * 60;

        return {
            years:      Math.floor(years),
            months:     Math.floor(months),
            days:       Math.floor(days),
            hours:      Math.floor(hours),
            minutes:    Math.floor(minutes),
            seconds:    Math.floor(seconds)
        };
    }

    /**
     * ВОТ ТАК ВОТ ИСПОЛЬЗОВАТЬ
     */

    var myDataDiff = dateDiff('13.08.2015 13:00', 540);

    // сколько осталось лет
    myDataDiff.years;
    // сколько осталось месяцев
    myDataDiff.months; 
    // сколько осталось дней
    myDataDiff.days;
    // сколько осталось часов
    myDataDiff.hours;
    // сколько осталось минут
    myDataDiff.minutes;
    // сколько осталось секунд
    myDataDiff.seconds;


    /**
     * Это лишь пример, на него даже не смотрите (строка ниже)
     */
    alert(JSON.stringify(myDataDiff).replace(/[\{\}\"]/g, '').replace(/\,/g, '\r\n'));
Ответить с цитированием