Reputation: 15710
I'm using FullCalendar in my asp.net application. I need to change the day background color.
What i have tried so far :
dayRender: function (date, cell) {
var today = new Date();
var end = new Date();
end.setDate(today.getDate()+7);
if (date.getDate() === today.getDate()) {
cell.css("background-color", "red");
}
var start = new Date();
start.setDate(today.getDate()+1);
while(start <= end){
//alert(start + "\n" + tomorrow);
if(start.getDate() == date.getDate()){
cell.css("background-color", "yellow");
}
var newDate = start.setDate(start.getDate() + 1);
start = new Date(newDate);
}
}
This change background color of whole days. Demo
But my need is to change the background color of days, 7 days onward from current date.
Example
Today is 2013-July-29. I need to change the background color of below days.
2013-July-30
2013-July-31
2013-August-01
2013-August-02
2013-August-03
2013-August-04
2013-August-05
How can i do this ?
Upvotes: 3
Views: 41523
Reputation: 18691
From FullCalendar v5 onwards, dayRender
is deprecated, per https://fullcalendar.io/docs/v5/upgrading-from-v4.
The following worked for me in v5 and above:
dayCellDidMount: ({ date, el }) => {
const requested_date = new Date();
if (date.getDate() === requested_date.getDate() && date.getMonth() === requested_date.getMonth()) {
el.style.backgroundColor = 'red';
}
},
Note that getDate()
just gets the day number (1, 2, ...) so in order to avoid two colored cells I'm checking for the month number as well, with getMonth()
.
Upvotes: 0
Reputation: 21
dayRender : function(date, cell) {
var idx = null;
var today = new Date().toDateString();
var ddate = date.toDate().toDateString();
if (ddate == today) {
idx = cell.index() + 1;
cell.css("background-color", "azure");
$(
".fc-time-grid .fc-bg table tbody tr td:nth-child("
+ idx + ")").css(
"background-color", "azure");
}
}
Upvotes: 1
Reputation: 1152
You can do it like this:
dayRender: function (date, cell) {
var today = new Date();
var end = new Date();
end.setDate(today.getDate()+7);
if (date.getDate() === today.getDate()) {
cell.css("background-color", "red");
}
if(date > today && date <= end) {
cell.css("background-color", "yellow");
}
}
Upvotes: 18