Tôi cần tính năng này trong dự án hiện đang hoạt động. Đây là một dự án trường học, nơi tôi phải làm nổi bật nền với một màu đỏ nếu ngày đó là một sự kiện kỳ nghỉ + những ngày cuối tuần. Xin lưu ý rằng ở đây tất cả các ngày thứ Bảy không phải là ngày lễ. Một số trường chỉ có ngày nghỉ vào ngày thứ Bảy thứ hai hoặc ở một số trường học, một ngày thứ Bảy ngẫu nhiên sẽ được chọn làm ngày làm việc.
Bằng cách nào đó, tôi đã vượt qua vấn đề này mặc dù đây không phải là giải pháp thanh lịch.
Trên phiên bản 1.5.1 tại dòng số 2291 thêm dòng
var refDate = typeof(window.holidays)!='undefined'?window.holidays:[]; //Quick and dirty fix
này Từ 2300-2304 thay thế các dòng với đoạn mã sau
if (+date == +today) {
cell.addClass(tm + '-state-highlight fc-today');
}else if($.inArray(+date, refDate)!=-1){ //Added by me
cell.addClass(tm + '-state-error'); //Added by me
}else{
cell.removeClass(tm + '-state-highlight fc-today');
cell.removeClass(tm + '-state-error'); //Added by me
}
Trước khi gọi toàn bộ lịch, bạn cần phải tạo một mảng các ngày được chuyển đổi thành các đối tượng ngày js sau đó được chuyển đổi thành số nguyên dài bằng cách thêm dấu + ở phía trước, như thế này
var holidayArray = ['2011-06-26','2011-07-03','2011-07-10','2011-07-17','2011-07-24','2011-07-31'];
window.holidays = [];
for(var i=0; i<holidayArray.length;i++){
holidays.push(+(mysqlDateToJSDate(holidayArray[i])));
}
Cuối cùng tôi tìm thấy một hàm js chuyển đổi ngày của tôi thành các đối tượng js date.
function mysqlDateToJSDate(date) {
var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])$/;
var parts=date.replace(regex,"$1 $2 $3").split(' ');
return new Date(parts[0],parts[1]-1,parts[2],0,0,0);
}
Sau khi gọi toàn bộ lịch, đừng quên xóa biến toàn cầu.
Tôi biết rằng việc tạo một biến toàn cầu không phải là một điều tốt đẹp. Nhưng xem xét lịch đầy đủ là rất tích cực với sửa lỗi thường xuyên và các tính năng mới, tôi không muốn can thiệp quá nhiều vào mã. Tôi không biết làm thế nào để vượt qua biến trong như là một lựa chọn và dễ dàng có được nó ở nơi tôi muốn.
Điều này chỉ được thực hiện vào chế độ xem theo tháng. Chúng ta cũng cần thực hiện tương tự trên các chế độ xem khác ...
Không thể đăng bản xem trước nhưng bạn có thể xem nó here.
Đó sẽ là một tính năng tuyệt vời. – MrBliz