2014-10-22 75 views
0

當用戶輸入生日日期時,我有一個問題需要計算,看看剩下多少,結果寫在輸入中。下面是代碼:在輸入中打印

<script type="text/javascript"> 
    function calcform(){ 
    with (document.form1) { 
    var today = new Date(); 
    var fullyear = today.getFullYear(); 
    var future = new Date(+number1.value+ fullyear); 
    var diff = future.getTime() - today.getTime(); 
    var days = Math.floor(diff/(1000 * 60 * 60 * 24)); 
    } 
    } 
</script> 
<form name="form1" action=""> 
    Type your date birth: 
    <input type="text" id="number1" value="" size="30" /><br/> 
    <p> 
    Number of days until your birthday: 
    <input type="text" id="result" value="" size="13" /><br/> 
    <p> 
    <input type="button" id="Calculate" value="Calculate" onclick="calcform()" /> 
    <input type="reset" value="Clear"/> 
</form> 
+0

請勿使用'with'。 – 2014-10-22 11:15:44

+0

在number1.value – Billy 2014-10-22 11:15:46

回答

0

固定它,你需要增加的日期,直到下一個生日比當前的日期時,則測量天。

function calcform(){ 
    var today = new Date(); 
    var fullyear = today.getFullYear(); 
    var future = new Date(document.getElementById('number1').value); 
    future.setFullYear(fullyear); 
    if(future.getTime()<today.getTime()) future.setFullYear(fullyear+1); 
    var diff = future.getTime() - today.getTime(); 
    var days = Math.floor(diff/(1000 * 60 * 60 * 24)); 
    document.getElementById('result').value=days; 
} 
+0

之前帶上var line未來的加號。該函數有問題。當輸入日期dd/mm/yyyy我沒有得到確切的天數? – 2014-10-22 11:47:26

+0

Javascript使用美式格式:mm/dd/yyyy – 2014-10-22 11:50:59

+0

我忘了。多謝。 – 2014-10-22 11:53:59