两个日期之间的天数kendo DateTimePicker

时间:2017-07-23 06:19:36

标签: javascript kendo-asp.net-mvc

美好的一天, 我需要将两个日期之间的天数输入两个kendo.DateTimePickers。

我的解决方案始终以NaN值结束。 RentStartDate和RentEndDate作为DateTime存储在db中。

感谢您的建议。

<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 个答案:

答案 0 :(得分:1)

尝试使用Moment.js将日期选择器中的值转换为日期对象。这将解决你的问题。

像...一样的东西。

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

我实际上建议您在操作日期的任何时候使用Moment.js,尤其是当这些日期来自网页元素时。剑道非常好,但我在试图直接使用日期方面遇到了问题。

答案 1 :(得分:1)

感谢指点......问题已解决,因此看起来像是一个功能性脚本。

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

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

    alert(diffDay.toString());

});