考勤页面需要将日期与星期进行对应,不同月份的时间及对应的星期不同,因此只能动态生成
var col=new Array();
var col1=new Array();
var col2=new Array();
将数据先初始化
col1.splice(0,col1.length);
col2.splice(0,col2.length);
col.splice(0,col.length);//首先需要将三个数据清空,否则每次刷新都会加载出重复的表头
var weTime = $("#month").val();
var timestamp1 = new Date(weTime);
var daysCount = getDaysInMonth(timestamp1);
for(var i=0;i<daysCount;i++){
weekTime=weTime;
var day=i+1;
var weekTime=weTime+'/'+day;
var timestamp = new Date(weekTime);
var weekDay = ["日", "一", "二", "三", "四", "五", "六"];
var daysi= 'days'+i;
var week=weekDay[timestamp.getDay()]
col1.push({"title":week,rowspan:1,width: 80, align: "center"})
col2.push({ field:'days'+i, "title": i+1,width: 80, align: "center",formatter:function (value,row,index) {
if(value==0){
value='√'
return value;
}else if(value==1){
value='△';
return value;
}else if(value==2){
value='○';
return value;
}else if(value==3){
value='X';
return value;
}else if(value==4){
value='公';
return value;
}else if(value==5){
value='●';
return value;
}else if(value==6){
value='☆';
return value;
}
}, rowspan:1,styler: function(value,row,index){
if(value == 0){
return 'background:#46A3FF;font-size: x-large;';
}else if(value==1){
return 'background:#FF8000';
}else if(value==2){
return 'background:#7E3D76';
}else if(value==3){
return 'background:#EA0000';
}else if(value==4){
return 'background:#0066CC';
}else if(value==5){
return 'background:#9999CC';
}else if(value==6){
return 'background:#FFFF37';
}else if(value==null){
return 'background:#00BB00';
}
}});
}
根据月份时间获取到此月份的天数,并查询出对应的星期
function getDaysInMonth(eDate) {
var daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
daysInMonth[1] = isLeapYear(eDate) ? 29 : 28;
return daysInMonth[eDate.getMonth()];
}
function isLeapYear(eDate) {
var year = eDate.getFullYear();
return (((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400));
}
这样就可以实现一一对应的表头
效果图如下