2016-07-23 83 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