Количество дней между 2мя datapicker(ами)
Здравствуйте уважаемые.
Делаю первые шаги в jawascript. По существу: Имеется datapicker и datapicker2 отображают дату в формате dd/mm/yy Подскажите как подсчитать разниц между датами в днях и вывести её в ячейку таблицы? Такой код, не всегда даёт правильный результат. function Count_Diff(d1, d2) { var date_1 = new Date(parseInt(20+(d1.substr(6, 2)), 10), parseInt(d1.substr(3, 2), 10), parseInt(d1.substr(0, 2), 10)); var date_2 = new Date(parseInt(20+(d2.substr(6, 2)), 10), parseInt(d2.substr(3, 2), 10), parseInt(d2.substr(0, 2), 10)); return ((date_2-date_1)/86400000); } |
function getDays(dt1, dt2) { function parse(dt) { return dt.replace(/(\d+)\/(\d+)\/(\d+)/, function(all, a, b, c){ return (c < 100 ? +c + 2000 : c) + '/' + (+b - 1) + '/' + a; }); } var outDT1 = (new Date(Date.UTC.apply(null, parse(dt1).split('/')))).getTime(); var outDT2 = (new Date(Date.UTC.apply(null, parse(dt2).split('/')))).getTime(); return ( outDT1 > outDT2 ? outDT1 - outDT2 : outDT2 - outDT1) / 1000 / 60 / 60 / 24; } alert(getDays('01/01/13', '28/2/2013')); // разница 58 дней |
Работает :) Спасибо.
Работает :) Спасибо.
Вот только, насколько реально в таком представлении сравнивать даты, если скажем по ошибке человек ввел начальную дату старше конечной? |
Цитата:
return outDT1 > outDT2 ? 0 : ((outDT2 - outDT1) / 1000 / 60 / 60 / 24);всегда выведет ноль если начальная больше конечной |
Ещё раз спасибо.
Ещё раз спасибо.
Можно ещё попытаться обработать, наподобе такого: Datepicker2.MinDate=Datepicker.selected.date+1 погрызу jqwery... |
Погрыз... нашел хороший пример
Пока не знаю как должен выглядеть окончательный вариант кода
http://forum.jquery.com/topic/datepi...37000000961170 |
Пардон. Чуть глубже был рабочий пример.
|
Примерно так
<script>
$(function() { $( "#from" ).datepicker({ changeMonth: true, numberOfMonths: 2, minDate: "today", onClose: function( selectedDate ) { var day1 = $("#from").datepicker('getDate').getDate()+1; var month1 = $("#from").datepicker('getDate').getMonth()+1; var year1 = $("#from").datepicker('getDate').getFullYear(); var nDate = year1+ "," + month1 + ","+day1; nDate = new Date(nDate); $( "#to" ).datepicker( "option", "minDate", nDate); } }); $( "#to" ).datepicker({ defaultDate: "+1d", changeMonth: true, numberOfMonths: 2, onClose: function( selectedDate ) { $( "#from" ).datepicker( "option", "maxDate", selectedDate ); } }); }); </script> </head> <body> <label for="from">From</label> <input type="text" id="from" name="from" /> <label for="to">to</label> <input type="text" id="to" name="to" /> |
Часовой пояс GMT +3, время: 19:50. |