2016-02-29 107 views
-1

我想在2日期之间获得Days的编号,我已经在网上搜索过,发现相当不错的解决方案..但是当我应用这个时,它给我NaN。我无法理解什么是错在这段代码,请检查和指导我什么,我做错了,如何获取JQuery中的两个日期之间的天

HTML代码

<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代码

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()); 
    }); 
}); 

输出

+0

http://stackoverflow.com/questions/542938/how-do-i-get-的重复该用户号码的天,两个日期,在JavaScript的间。 –

+0

忘记使用'parseDate()'函数,并试图对字符串进行计算。建议您使用datepickers,并避免需要自己进行大量验证。使用浏览器控制台检查错误 – charlietfl

+0

函数daydiff接受两个参数,并且只传递一个参数。 – Tony

回答

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"/>

+0

谢谢,我无法想象我已经浪费了2个小时! – Kirmani88

相关问题