2015-06-05 26 views
0

我在JavaScript中是noobie,並且一直有麻煩實施正確的代碼爲這個主題。我已經嘗試過在您的網站和其他網站上檢查現有的論壇問題,但我總是會得到一個破損的代碼。基本上,我需要使用DueInDays輸入文本來顯示DueDate和AssignDate onChange之間的區別。以下是我嘗試的最後一個代碼。獲取2個輸入字段內的日期差異,並將其顯示在另一個字段上

function diffrenceindays() { 
 
    var startdate = GetDateValue(AssignDate); 
 
    var Enddate = GetDateValue(DueDate); 
 

 
    var oneday = 1000 * 60 * 60 * 24; 
 
    var differenceInDays = ((Enddate - startdate)/oneday); 
 
    if (differenceInDays < 0) { 
 
    alert(" date cannot be less then start date"); 
 

 
    } 
 
    alert(" diffrence in days " + differenceInDays); 
 

 
} 
 

 
function GetDateValue(field) { 
 

 

 
    var year = field.getFullYear(); 
 
    var month = field.getMonth(); 
 
    var day = field.getDate(); 
 
    dateOnly = new Date(year, month, day); 
 
    return dateOnly; 
 

 

 
}
<form> 
 
    <label>Due Date 
 
    <input type="text" class="DatePicker" name="DueDate" id="DueDate" value="" size="32" onchange="diffrenceindays();" /> 
 
    </label> 
 
    <label>Assign Date 
 
    <input type="text" class="DatePicker" name="AssignDate" id="AssignDate" value="" size="32" onchange="diffrenceindays();" /> 
 
    </label> 
 
    <label>Due in Days 
 
    <input type="text" id="DueInDays" /> 
 
    </label> 
 
</form>

+0

以及我沒有看到你設置輸入的值,只是提示值。文本字段如何像日期對象一樣操作? – epascarello

回答

0

開始日期和結束日期是Date對象。如果要比較它們的相對時間,你應該使用getTime方法 即

function diffrenceInDays(date1,date2) { 
     var startdate = date1.getTime(); 
     var enddate = date2.getTime(); 

     var oneday = 1000 * 60 * 60 * 24; 
     var differenceInDays = ((enddate - startdate)/oneday); 
     if (differenceInDays < 0) { 
     alert(" date cannot be less then start date"); 

     } 
     alert(" diffrence in days " + Math.floor(differenceInDays)); 
} 

你應該在天傳遞給函數,而不是函數內找到他們的。

您還應該閱讀epascarello的評論。

相關問題