2016-08-08 26 views
1

我想實現的是如果用戶輸入日期 08/08/2016到08/09/2016 = 1個月 08/08/2016到01/09/2016 = 1個月 甚至 2016年8月8日至30/08/2016 =1個月jquery計算兩個日期之間的月份

所以basicly如果有人想租,從2016年1月8日至30/08/2016一個房間,計1個月

任何人都可以幫助我實現這與jQuery的?

或指點我從哪裏開始。

+1

[moment.js(http://momentjs.com/) – Andreas

+0

看起來不錯,去看看它,如果我能設法把它關閉。謝謝! –

回答

0

請看看這段代碼。

請注意,雖然測試,以「MM/DD/YYYY」格式即美國日期格式輸入日期。我希望它會幫助你

$(document).ready(function() { 
 
    $("#calc").click(function() { 
 
    var from = $("#from").val(); 
 
    var to = $("#to").val(); 
 
    var monthDifference = 0; 
 
    if (from != "" && to != "") { 
 
     var fromDate = new Date(from); 
 
     var toDate = new Date(to); 
 
     calculateMonths(fromDate, toDate, monthDifference); 
 
    } 
 
    }); 
 

 
    function calculateMonths(fromDate, toDate, monthDifference) { 
 

 
    if (fromDate < toDate) { 
 
     monthDifference++; 
 
     fromDate.setMonth(fromDate.getMonth() + 1); 
 
     calculateMonths(fromDate, toDate, monthDifference); 
 
    } else 
 
     alert("monthDifference "+monthDifference); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
From: 
 
<input type="text" id="from" value="08/08/2016"/>To: 
 
<input type="text" id="to" value="10/08/2016"/> 
 

 
<br/> 
 
<br/> 
 
<button id="calc">Calculate</button>

+0

歡迎@JeffreyLang ....':)'! – vijayP

0

使用moment.js你可以做到這一點很簡單的辦法。您需要導入moment.js文件。

// 31 Oct 2013 - 1 Feb 2014 
> moment([2014, 1, 1]).diff(moment([2013, 9, 31]), 'months', true) 
2.983050847457627 

// 31 Oct 2013 - 31 Jan 2014 
> moment([2014, 0, 31]).diff(moment([2013, 9, 31]), 'months', true) 
3 

// 31 Oct 2013 - 30 Jan 2014 
> moment([2014, 0, 30]).diff(moment([2013, 9, 31]), 'months', true) 
2.967741935483871 
相關問題