fullcalendar呈现:在JS中获取当前单元格日整数,然后将其用作数组键

时间:2016-09-16 10:24:41

标签: javascript php arrays json fullcalendar

我正在尝试渲染完整的日历,并且我希望每个单元格根据我的一个数组显示不同的颜色,该数组包含给定月份中每一天的颜色。 我在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方面有点新意。我试图在很长一段时间内自己找到解决方案。

有什么建议吗? 谢谢!

1 个答案:

答案 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");
    }

}   

});