Дни между двумя датами кендо DateTimePicker

Добрый день, мне нужно получить количество дней между двумя датами, введенными в два kendo.DateTimePickers.

Мое решение всегда заканчивается значением NaN. RentStartDate и RentEndDate хранятся в БД как DateTime.

Спасибо за совет.

<script>$("#RentEndDate").change(function () {
    var startDate = kendo.toString($("#RentStartDate").data("kendoDateTimePicker").value(), "dd.MM.yyyy");
    var endDate = kendo.toString($("#RentEndDate").data("kendoDateTimePicker").value(), "dd.MM.yyyy");   
    alert(calculate(startDate, endDate));
});

function calculate(first, second) {
    var diff = Math.round((second - first) / 1000 / 60 / 60 / 24);
    return diff;
}

CreateOrders.cshtml

<h4>Termín půjčení</h4>
        <div class="t-col t-col-6 t-col-xs-12 t-col-sm-12 t-col-md-12 col-sm-6">
            <label for="rentStartPicker">Půjčit od</label>
            @(Html.Kendo().DatePickerFor(model => model.RentStartDate).Name("rentStartPicker").HtmlAttributes(new { style = "height:28px;", required = "required", validationmessage = "Vyberte datum" }))
        </div>
        <div class="t-col t-col-6 t-col-xs-12 t-col-sm-12 t-col-md-12 col-sm-6">
            <label for="rentEndPicker">Půjčit do</label>
            @(Html.Kendo().DatePickerFor(model => model.RentEndDate).Name("rentEndPicker").HtmlAttributes(new { style = "height:28px;", required = "required", validationmessage = "Vyberte datum" }))
        </div>

2 ответа

Решение

Попробуйте использовать Moment.js, чтобы преобразовать значения из средств выбора даты в объекты даты. Это решит ваши проблемы.

Что-то вроде...

var startDate = moment($("#RentStartDate").data("kendoDateTimePicker").value());

Я на самом деле рекомендую использовать Moment.js практически каждый раз, когда вы манипулируете датами, особенно когда эти даты происходят из элементов веб-страницы. Кендо довольно хорош, но у меня были проблемы при попытке использовать даты напрямую.

Спасибо за указание... Проблема решена, поэтому она выглядит как функциональный скрипт.

$("#RentEndDate").change(function () {

    var startDate = $("#RentStartDate").data("kendoDateTimePicker").value();
    var endDate = $("#RentEndDate").data("kendoDateTimePicker").value();
    var diffDay = calculate(startDate, endDate);

    alert(diffDay.toString());

});
Другие вопросы по тегам