JSFiddle - React, Tailwind, and code Playground
HTML
<p>Введите дату заезда. Формат даты гггг-мм-дд</p>
<input type="text" class="astart formdate" placeholder="2016-11-10">
<p>Введите дату съезда. Формат даты гггг-мм-дд</p>
<input type="text" class="aend formdate" placeholder="2016-11-15">
<p>дней проживания: <span class="count-active"></span></p>
<p>Номер месяца заезда<span class="mn"></span></p>
<p>Номер месяца заезда<span class="mo"></span></p>
<p>Стоимость проживания <span class="price"></span></p>
<button class="button">Нажми</button>
<h5>Не обращайте внимание на то, что можно указать дату заезда моложе даты съезда. По факту, у меня в ручную вводиться дата не будет. Здесь инпут чисто для тестирования.</h5>
<p>Сколько дней в первом месяце <span class="test1"></span></p>
<p>Сколько дней во втором месяце <span class="test2"></span></p>
<p>Дата заезда<span class="test3"></span></p>
<p>Дата съезда<span class="test4"></span></p>
JavaScript
$(".button").click(function() {
var
astart = $('.astart').val(),
aend = $('.aend').val(),
start = new Date(astart), // дата заезда
end = new Date(aend), // дата съезда
daystart = start.getDate(), // день заезда
dayend = end.getDate(), // день съезда
monthstart = start.getMonth(), // месяц заезда
monthend = end.getMonth(), // месяц съезда
arra = ["1000", "1500", "2000", "2000", "1500", "2000", "2500", "3000", "2500", "2000", "1500", "2000", ],
// выше - стоимость по месяцам (янв, фев, март и т.д.).
price = $('.price'),
howday = (end - start) / (3600 * 24 * 1000), // кол-во прожитый дней
hdfm = '', // сколько дней в первом месяце
hdsm = '', // сколько дней во втором месяце
ptosm = '', // сколько стоит проживание во втором месяце
how = '';
$('.count-active').text(howday);
// Если это один месяц
if (monthstart == monthend) {
how = "Один и тот же месяц";
price.text(howday * arra[monthstart]);
} // если нет
else {
hdsm = howday - dayend; // подсчёт кол-ва дней во втором месяце. (кол-во дней минус дата окончания)
hdfm = howday - hdsm; // подсчёт кол-ва дней в первом месяце. (кол-во дней минус кол-во во втором )
price.text((hdfm * arra[monthstart] + hdsm * arra[monthend]));
}
$('.mn').text(monthstart);
$('.mo').text(monthend);
$('.test1').text(hdfm);
$('.test2').text(hdsm);
$('.test3').text(daystart);
$('.test4').text(dayend)
});