我正在开发一个使用 jQuery datepicker 的项目,并尝试使用 showWeek 属性在日历旁边显示周数。
我的问题是我不希望“第 1 周”从 1 月 1 日开始,而是在 8 月 1 日开始。
有什么办法可以实现吗?
谢谢
我正在开发一个使用 jQuery datepicker 的项目,并尝试使用 showWeek 属性在日历旁边显示周数。
我的问题是我不希望“第 1 周”从 1 月 1 日开始,而是在 8 月 1 日开始。
有什么办法可以实现吗?
谢谢
下个月工作在上个月不工作,所以我禁用了上个月。
如果当前月份小于 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();
});
});
使用 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"
});
});