Делать было нечего, мб понадобится =)
/**
* @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'));