如何在JQuery

时间:2016-02-29 20:35:58

标签: javascript jquery html jquery-ui

我想在2个日期之间获得Days的数量,我在网上搜索了这个并找到了相当不错的解决方案。但是当我应用它时,它给了我NaN。我无法理解这段代码中的错误,请检查并指导我在这里做错了什么,

HTML CODE

<input id="date_from" class="form-control input-sm" type="text" name="date_from" required>

<input id="date_to" class="form-control input-sm" type="text" name="date_to" required>

JS CODE

function parseDate(str) {
var mdy = str.split('/')
return new Date(mdy[2], mdy[0]-1, mdy[1]);
}   

function daydiff(first, second) {
    return Math.round((second-first)/(1000*60*60*24));
} 

$(document).ready(function(){
    $("#date_to").change(function(){        
        alert(daydiff(parseDate($("#date_from").val())- parseDate($("#date_to").val())));
        alert($("#date_from").val());
    });
});

输出

1 个答案:

答案 0 :(得分:1)

您将日期作为NaN的字符串减去,请尝试:

function parseDate(str) {
var mdy = str.split('/')
return new Date(mdy[2], mdy[0]-1, mdy[1]);
}   

function daydiff(first, second) {
    return Math.round((parseDate(second).valueOf()-parseDate(first).valueOf())/(1000*60*60*24));
} 

$(document).ready(function(){
  $("#date_to").change(function(){        
    alert(daydiff($("#date_from").val(), $("#date_to").val()));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="date_from">From:</label>
<input type="text" id="date_from"/>
<br/>
<label for="date_to">To:</label>
<input type="text" id="date_to"/>