Показать сообщение отдельно
  #6 (permalink)  
Старый 17.04.2013, 21:00
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Особого смысла считать разницу в интервалах больших чем сутки нет по причине непостоянства количества дней в этих интервалах (в месяцах и годах). Хотя для удобства же представления можно сделать, например, так:
var S = 60 * 60 * 24 * 1000;

var diff2 = function(date1, date2)
{
	var delta = date1.getDate() - 1;

	var date3 = new Date(date1.getFullYear(), date1.getMonth(), 1);
	var date4 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() - delta);

	var m = date4.getMonth() - date3.getMonth();
	var d = date4.getDate() - 1;

	alert([
		date1, date2, (date4 - date3) / S, 
		date3, date4, (date2 - date1) / S, 
		'months: ' + m, 'days: ' + d
	].join('\n'));
};

var x = new Date(2013, 3, 10);
var y = new Date(2013, 9, 20);

diff2(x, y);

Последний раз редактировалось with-love-from-siberia, 17.04.2013 в 21:06.
Ответить с цитированием