2011-11-22 126 views
0

可能重複:
Difference in Months between two dates in JavaScript如何計算jQuery中兩個日期之間的月份?

<input type="text" id="month1" value="11"><input type="text" id="year1" value="1988"> <br /> 
<input type="text" id="month2" value="03"><input type="text" id="year2" value="2010"> <br /> 

<input type="submit" id="show"> 

$("#show").click(function(){ 
    var m1 = $("#month1").val(); 
    var m2 = $("#month2").val(); 
    var y1 = $("#year1").val(); 
    var y2 = $("#year2").val(); 

    var result = 'result'; 
}) 

LIVE:http://jsfiddle.net/4XJUp/

如何是數月jQuery的兩個日期之間在這個例子中,最好的和簡單的方法是什麼?

+0

最簡單的方法可能是從另一個減去一年,然後乘以12. –

+2

您如何驗證輸入?你有沒有考慮過日期選擇器?在同一個月內的差異是1天還是1天?在同一個月內30天的差異被認爲是2或1或0(因爲那是4周以上,最短月份的時間長度,閏年除外)。 – StuperUser

+0

@Grillz假設有效日期,它不考慮月份,前一個月是否在第二個盒子,反之亦然。 – StuperUser

回答

2

嘗試:

<form onsubmit="monthDiff(this); return false;"> 
    <br>month&nbsp;1<input id="m1" value="1"> 
     year&nbsp;1<input id="y1" value="2010"> 
    <br>month&nbsp;2<input id="m2" value="3"> 
     year&nbsp;2<input id="y2" value="2010"> 
    <br>Difference in months:<input id="diff"> 
    <br><input type="submit"> 
</form> 

<script> 

function monthDiff(f) { 

    f.diff.value = f.y2.value * 12 + Number(f.m2.value) - 
       f.y1.value * 12 - f.m1.value; 
} 

</script> 

當然,你在使用前應驗證輸入。

+0

爲什麼回答這個問題顯然是一個確切的愚蠢? –

+1

可能是因爲回答它比查找重複更快。無論如何,我不認爲它是一個完全重複的 - 一個使用Date objets,這隻使用日期字符串。最後,我的解決方案比任何「重複」都要好。 :-) – RobG

+0

Alex K.,KooiInc,ŠimeVidas,Donal研究員和我不同意你:) –

相關問題