在Jquery datepicker ShowWeek上更改开始周

时间:2013-07-19 12:17:42

标签: javascript jquery datepicker jquery-ui-datepicker

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

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

有什么办法可以实现吗?

由于

2 个答案:

答案 0 :(得分: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();
    });
});

答案 1 :(得分:0)

使用 jQuery 日期选择器自定义年度计算时刻库根据您的区域设置计算一年中的一周。

请参考这个工作示例:

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"
  });

});