Datepicker расчет цены скидка
Я использую jquery datepicker для расчета цены в соответствии с выбранной датой. Сейчас установлено 125 на один месяц. Я хочу сделать скидку 5%, если клиент выбирает 3 месяца, и 10%, если клиент выбирает 4+ месяца.
Как это сделать?
http://jsfiddle.net/5BbGS/502/
function showDays() {
var start = $('#arr_date').datepicker('getDate');
var end = $('#dep_date').datepicker('getDate');
if (!start || !end) return;
var days = (end - start) / 1000 / 60 / 60 / 24;
var dayss = days*4.166666666666667;
dayss = dayss.toFixed(0);
$('#num_nights').val(dayss);
}
$("#arr_date").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: showDays,
onClose: function( selectedDate ) {
var dParts = selectedDate.split('-');
var in30Days = new Date(dParts[2] + '/' +
dParts[1] + '/' +
(+dParts[0] + 30)
);
$( "#dep_date" ).datepicker( "option", "minDate", in30Days );
}
});
$("#dep_date").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: showDays,
});
Спасибо вам, ребята!
1 ответ
Решение
Используйте эту функцию...
function showDays() {
var start = $('#arr_date').datepicker('getDate');
var end = $('#dep_date').datepicker('getDate');
if (!start || !end) return;
var days = (end - start) / 1000 / 60 / 60 / 24;
var dayss = days*4.166666666666667;
dayss = dayss.toFixed(0);
if(days>90 && days<=120) dayss = dayss*95/100;
if(days>120) dayss = dayss*90/100;
$('#num_nights').val(dayss);
}
http://jsfiddle.net/5BbGS/507/
Но я думаю, что 3 месяца не означает 90 дней, вы должны посмотреть на это...
Вот функция для получения количества месяцев между двумя датами:
function monthDiff(d1, d2) {
var months;
months = (d2.getFullYear() - d1.getFullYear()) * 12;
months -= d1.getMonth() ;
months += d2.getMonth();
return months <= 0 ? 0 : months;
}