我正在尝试渲染完整的日历,并且我希望每个单元格根据我的一个数组显示不同的颜色,该数组包含给定月份中每一天的颜色。 我在Jason得到了这个数组。 例如" json_backgrundColor [1] =' red'" (1是月份的日期编号。可能的数组键范围1-30 / 31)。
这是jason中的一个数组,例如:
{"1":"green","2":"blue","3":"blue","4":"yellow","5":"yellow","6":"yellow","7":"yellow","8":"yellow","9":"blue","10":"blue","11":"yellow","12":"yellow","13":"yellow","14":"yellow","15":"yellow","16":"blue","17":"blue","18":"yellow","19":"yellow","20":"yellow","21":"yellow","22":"yellow","23":"blue","24":"green","25":"red","26":"red","27":"green","28":"green","29":"green","30":"green","31":"green"}
我的第一个问题是我似乎无法将给定单元格的数量作为JS中的整数(1-31)。
这里是代码(回显Js时的php):`
for ($i = 1; $i <= 12; $i++) {
$month = $i - 1;
$json_array_for_fullCalendar[$i] = self::convert_events_to_json_for_full_calendar($fullCalendarMonth[$i],$_POST['display_Language']);
echo "<div id='calendar$i'></div>
<script>
var json = $json_array_for_fullCalendar[$i];
var JsMonth = $month;
var JsYear = $year;
var json_backgrundColor = $JsonMonthBackgroudCell[$i];
$('#calendar$i').fullCalendar({
var moment = $('#calendar$i').fullCalendar('getDate');
var cellDate = moment.format('d');
events: json,
fixedWeekCount: false,
defaultDate: new Date(JsYear, JsMonth, 1),
dayRender: function (date, cell) {
cell.css('background-color', json_backgrundColor[cellDate])
},
});
</script>"; }
此代码甚至不呈现完整日历(这是我的seconed问题)。 我的第二个问题是,当我试图在js变量中获取数组键时,很难渲染完整的日历。
例如对于seconed问题: 当我不使用变量时,我使用了一个整数:
dayRender: function (date, cell) {
cell.css('background-color', json_backgrundColor[1])
},
当我从代码中删除这一行时:
var moment = $('#calendar$i').fullCalendar('getDate');
var cellDate = moment.format('d');
完整的日历正在呈现而没有任何问题。
我在沟通PHP和JS方面有点新意。我试图在很长一段时间内自己找到解决方案。
有什么建议吗? 谢谢!
答案 0 :(得分:0)
看看这里 http://jsfiddle.net/z8Jfx/7/ 并从那里开始。
var $ calendar = $('#calendar')。fullCalendar({ 标题:{ 左:'上一个,今天下一个', 中心:'标题', 右:'月,基本周,基本日' },
defaultView: 'month',
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");
}
}
});