从 Jquery UI 日期选择器获取正常周数

Get Normal Week number from Jquery UI datepicker

我正在尝试从 Jquery UI 日期选择器中获取当月的周数 (1,2,3,4,5)。我用谷歌搜索并得到了 iso 8601 周的代码,但不是正常的周数。

请帮忙

虽然我只对它进行了冒烟测试,但它应该能让您接近您想要的结果,而且可能还有更多边缘条件需要解决。

我基本上是取每月第一天的iso8601Week,然后从所选日期的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 标准),并且星期一之前的部分星期是第 1 周。因此,如果该月从星期一开始,则第一个星期一在第 1 周,如果该月在任何其他一天开始,第一个星期一在第 2 周。如果每月的 2 号在星期一并且也在第 2 周,这看起来有点奇怪,但如果你不喜欢这样,你将不得不花费一些时间详细决定你做什么喜欢什么。