2016-02-29 118 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

相關問題