Как мне получить общее количество дней, выбранных между двумя датами?

#jquery #asp.net

#jquery #asp.net

Вопрос:

У меня есть этот скрипт jquery, который позволяет пользователю выбирать дату начала и дату окончания:

 <script type="text/javascript" charset="utf-8">
    $(document).ready(function () {

        $('#txtToDate').datepicker({ showOn: 'button',
            buttonImage: 'images/20/calendar200.gif',
            buttonImageOnly: true, onSelect: function () { },
            onClose: function () { $(this).focus(); }
        });


        $('#txtFromDate').datepicker({ showOn: 'button',
            buttonImage: 'images/20/calendar200.gif',
            buttonImageOnly: true, onSelect:
        function (dateText, inst) {
            $('#txtToDate').datepicker("option", 'minDate', new Date(dateText));
        }
      ,
            onClose: function () { $(this).focus(); }
        });
        $('#txtToDate').datepicker({
       // Your other options here
        onSelect: function(dateText, inst) {
        var days = ($("#txtToDate").datepicker('getDate') - 
            $("#txtFromDate").datepicker('getDate'))/(24*60*60*1000);
        $('#numOfDays').val(days);
       console.log(days);
    }
  }
  );  

    });  
</script>
 

Тогда у меня есть элемент управления текстовым полем:

 <asp:TextBox ID="numOfDays" class="fptextbox12" runat="server" style="width:60px;"></asp:TextBox>
 

Как только пользователь выбирает дату начала и дату окончания, мы хотели бы указать общее количество дней в этом поле.

Есть идеи, как это рассчитать?

Ответ №1:

Добавьте эту onSelect опцию в указатель даты и рассчитайте количество дней.

 $('#txtToDate').datepicker({
        // Your other options here
        onSelect: function(dateText, inst) {
            var days = ($("#txtToDate").datepicker('getDate') - 
                $("#txtFromDate").datepicker('getDate'))/(24*60*60*1000);
            $('#numOfDays').val(days);
        }
    }
);
 

Комментарии:

1. спасибо за быстрый ответ. Я новичок в jquery. Куда в текущем скрипте мне поместить ваш код? Я попытался запустить, и я получаю следующую ошибку: `Невозможно получить значение свойства ‘getTime’: объект равен нулю или не определен`

2. больше ошибок нет, но значение date1 — date2 не отображается в окне numOfDays . Есть идеи?

3. напишите console.log(days) и посмотрите, получаете ли вы что-нибудь в окне консоли.

4. Я предполагаю, что текстовое поле имеет другой идентификатор, поскольку вы используете ASP.NET .

5. Установите режим текстового поля ClientID на статический или попробуйте $(«<%=numOfDays. ClientID%>»).val(days), перед этим значением журнала или предупреждения days, чтобы убедиться, что days имеет допустимое значение.