2014-10-24 3 views
1

Я использую jquery datepicker для расчета цены в соответствии с выбранной датой. Теперь он установлен 125 в течение одного месяца. Я хочу сделать скидку 5%, если клиент выбирает 3 месяца и 10%, если клиенты выбирают 4+ месяца.Datepicker расчет стоимости скидка

Как это сделать?

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, 

}); 

Спасибо, ребята!

+0

скрипка не работает .. – void

+0

на один месяц скидка, которую вы даете – Hitesh

+0

Нравится это http://jsfiddle.net/x3n3ftwc/1/ ..? – Anujith

ответ

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; 
} 

http://jsfiddle.net/5BbGS/514/

+0

Черт ... Ты прав. Может быть, у вас есть предложения? – Xinel

+0

Отредактировано ... Пожалуйста, не забывайте поднимать и отмечать его как правильный ответ, если это поможет вам ... :) – void

+0

@void: я не знаю, может ли он поддержать вас, у него нет достаточного количества очков, но он может принять ваш ответ – Hitesh

 Смежные вопросы

  • Нет связанных вопросов^_^