0

我正在开发一个使用 jQuery datepicker 的项目,并尝试使用 showWeek 属性在日历旁边显示周数。

我的问题是我不希望“第 1 周”从 1 月 1 日开始,而是在 8 月 1 日开始。

有什么办法可以实现吗?

谢谢

4

2 回答 2

0

下个月工作在上个月不工作,所以我禁用了上个月。

如果当前月份小于 8 月,则日历始终与 8 月一起打开,而日历从上一年的 8 月开始。

工作演示http://jsfiddle.net/cse_tushar/dR429/4

$(document).ready(function () {
    i = 0;
    month_set = 8;
    var d = new Date();
    week = (Math.ceil(Math.round(((new Date(d.getFullYear() + 1, 1)) - (new Date(d.getFullYear(), 1))) / 86400000) / 7));
    current_year = ((d.getMonth() + 1) >= month_set) ? d.getFullYear() : d.getFullYear() - 1;

    function myWeekCalc() {
        i++;
        return i = (i > week) ? 0 : i;
    }
    $("#d1").datepicker({
        showWeek: true,
        defaultDate: new Date(current_year, month_set-1, 1),
        calculateWeek: myWeekCalc,
        onClose: function () {
            i = 0;
        },
        onChangeMonthYear: function (year, month) {
            var diff = month - month_set;
            var d = new Date(month + ' 1' + ',' + year);
            if (d.getDay() != '0') {
                i--;
            }
            if (month == month_set) {
                i = 0;
            }
            if (current_year != year && month == month_set) {
                week = (Math.ceil(Math.round(((new Date(year + 1, 1)) - (new Date(year, 1))) / 86400000) / 7));
            }
        }
    }).focus(function () {
        $(".ui-datepicker-prev").remove();
    });
});
于 2013-07-19T16:42:49.520 回答
0

使用 jQuery Date Picker自定义 Week of Year 计算Moment库根据您的语言环境计算一年中的一周。

请参考这个工作示例:

https://jsfiddle.net/amansour/sez8fLgt/

function myWeekCalc(dt) {
  var dat = moment(dt).locale("en-US");
  return dat.week(); 
  // return dat.isoweek(); // you will have to use firstDay : 1
}

$(function(){

  $("[type='date']").datepicker({
    changeMonth: true,
    changeYear: true,
    showWeek: true, 
    firstDay: 0, // 1 being Monday, 0 being Sunday, 6 being Friday
    calculateWeek: myWeekCalc,
    dateFormat: "yy-mm-dd",
    yearRange: "-12:+12"
  });

});

于 2021-05-29T19:13:56.977 回答