2016-07-23 82 views

回答

1

這應該給你接近你想要什麼,但我只是煙霧測試,並有可能是需要解決的一些邊界條件。

我基本上採取了該月的第一天的iso8601Week,並從選定的日期減去它。這與大多數日期的情況一樣,但如果在星期四之前下降,ISO 8601會在去年的1月4日之前放置。這是針對%,這52

的代碼假定稱爲testDate輸入和一個標籤叫LABEL1:

$('#testDate').datepicker({ 
    onSelect: function(dateText, inst) { 
     var d = new Date(dateText); 
     var d1 = new Date(d.getFullYear(), d.getMonth(), 1) 
     var x = $.datepicker.iso8601Week(d) % 52; 
     var y = $.datepicker.iso8601Week(d1) % 52; 
     $('#label1').text(x-y+1); 
    } 
}); 

我留在所有的這些部分結果的變量,所以你可以用鼓搗各地值。此代碼假定該星期從星期一開始(這是ISO 8601標準),並且星期一之前的部分星期是第一週。因此,如果該月在星期一開始,則第一星期一在第一星期,如果該月在第二週開始,第一個星期一在第二週。如果這個月的第二個月在星期一和第二個星期,這看起來有點奇怪,但如果你不喜歡這個,你將不得不花費一些時間具體時間決定你做什麼之類的。

+0

謝謝,這正是我所期待的。它符合ISO 8601標準。我在2016年5月份進行了6個星期的測試,測試結果非常好。 – user375947

+0

很高興爲你效勞。但是如果我可能會提出這個建議,如果你還沒有,我會在一月和十二月相當徹底地測試幾個星期。 – BobRodes