Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “接收”;未捕获类型错误:start.getTime不是函数;尽管工作烦琐_Javascript_Jquery_Fullcalendar_Datejs - Fatal编程技术网

Javascript “接收”;未捕获类型错误:start.getTime不是函数;尽管工作烦琐

Javascript “接收”;未捕获类型错误:start.getTime不是函数;尽管工作烦琐,javascript,jquery,fullcalendar,datejs,Javascript,Jquery,Fullcalendar,Datejs,我有一个名为myDataset的全局变量: var myDataset = { "classes":[ [ { "name":"ECEC 301 Advanced Programming for Engineers Lecture", "days":"MWF", "times":"02:00 pm - 03:20 pm",

我有一个名为
myDataset
的全局变量:

var myDataset = {
    "classes":[
        [
            {
                "name":"ECEC 301 Advanced Programming for Engineers Lecture",
                "days":"MWF",
                "times":"02:00 pm - 03:20 pm",
                "crn":"11215"
            },
            {
                "name":"ECEC 301 Advanced Programming for Engineers Lab",
                "days":"W",
                "times":"09:00 am - 10:50 am",
                "crn":"11216"
            }
        ],
        [
            {
                "name":"ECEC 301 Advanced Programming for Engineers Lecture",
                "days":"MWF",
                "times":"02:00 pm - 03:20 pm",
                "crn":"11215"
            },
            {
                "name":"ECEC 301 Advanced Programming for Engineers Lab",
                "days":"F",
                "times":"02:00 pm - 03:50 pm",
                "crn":"11217"
            }
        ]
    ]
};
紧接着,我初始化我的
fullCalendar
对象:

    $('#calendar').fullCalendar({
        editable: false,
        weekMode: 'liquid',
        handleWindowResize: true,
        weekends: false, // Hide weekends
        defaultView: 'agendaWeek', // Only show week view
        header: false, // Hide buttons/titles
        minTime: '07:00:00', // Start time for the calendar
        columnFormat: {
            week: 'dddd' // Only show day of the week names
        }
    });
我正在使用
addEventSource
覆盖默认行为:

    $('#calendar').fullCalendar( 'addEventSource',
        function(start, end, callback) {
            // When requested, dynamically generate virtual
            // events for every monday and wednesday.
            var events = [];

            for (loop = start.getTime();
                 loop <= end.getTime();
                 loop = loop + (24 * 60 * 60 * 1000)) {
                var test_date = new Date(loop);
                var classes = myDataset.classes;
                for(i = 0; i < classes.length; i++){

                    var obj = classes[i];
                    for(j=0; j < obj.length; j++){

                        var days = obj[j].days;
                        var daysArray = days.split('');

                        for(k =0; k < daysArray.length; k++){

                            if(daysArray[k] == 'M' && test_date.is().monday()){
                                events.push({
                                    title: obj[j].name,
                                    start: $.fullCalendar.formatDate( test_date,  'yyyy-MM-dd HH:mm:ss')
                                });
                            }
                            else if(daysArray[k] == 'T' && test_date.is().tuesday()){
                                events.push({
                                    title: obj[j].name,
                                    start: $.fullCalendar.formatDate( test_date,  'yyyy-MM-dd HH:mm:ss')
                                });
                            }
                            else if(daysArray[k] == 'W' && test_date.is().wednesday()){
                                events.push({
                                    title: obj[j].name,
                                    start: $.fullCalendar.formatDate( test_date,  'yyyy-MM-dd HH:mm:ss')
                                });
                            }
                            else if(daysArray[k] == 'R' && test_date.is().thursday()){
                                events.push({
                                    title: obj[j].name,
                                    start: $.fullCalendar.formatDate( test_date,  'yyyy-MM-dd HH:mm:ss')
                                });
                            }
                            else if(daysArray[k] == 'F' && test_date.is().friday()){
                                events.push({
                                    title: obj[j].name,
                                    start: $.fullCalendar.formatDate( test_date,  'yyyy-MM-dd HH:mm:ss')
                                });
                            }
                        }
                    }

                }
            }
            // return events generated
            callback( events );
        }
    );
此错误出现在
addEventSource
中我的代码片段的第三部分

在我的HTML页面的标题上,我有以下内容:

<script src="https://cdnjs.cloudflare.com/ajax/libs/datejs/1.0/date.min.js"></script>

我也试着把它放在下面

最后,我还检查了Chrome开发工具中的
源代码,库确实已经加载

奇怪的是。。我的小提琴工作:

编辑:

启动的输出

编辑2:

看起来Fiddle使用的是Date对象,但我的代码使用的是Moment对象


如果您的代码使用的是
时刻
对象,但您想使用
日期
对象,则需要稍微调整代码,如下所示:

 for (loop = start.getTime();
             loop <= end.getTime();
             loop = loop + (24 * 60 * 60 * 1000)) {
更新的答案

我刚刚更新了您的小提琴,使其使用
fullcallendar 2.4.0
,并修改了您的代码:


工作小提琴:
console.log(开始)的结果是什么
@Hackerman更新了我的问题
开始
结束
时刻
s,而不是
日期
s。有关文档,请参阅。@TheGreenColla没有答案。“你是说这个问题,”巴尔马-我明白了。小提琴使用的是date对象,而我的程序使用的是Moment对象。它不知道getTime()是什么的原因。如何修复此问题?在矩对象上使用
toDate()
函数来访问常规JS日期,我很确定
\uu
变量不是用来访问的。不管怎样,谢谢你。排除了那两行中的错误。我在测试日期上也尝试了同样的方法。_d.is().monday()
收到:
未捕获类型错误:无法读取未定义的属性'is'
@tymeJV我使用了
toDate()
而不是
\u d
。看起来更具可读性。不要忘记,
test\u date
不是一个时刻,而是一个正常的日期object@Hackerman找出我的小提琴没有出错的原因。。它使用的是FullCalendar 1.5.3,而我的网站使用的是2.4.0。
 for (loop = start.getTime();
             loop <= end.getTime();
             loop = loop + (24 * 60 * 60 * 1000)) {
for (loop = start._d.getTime();
             loop <= end._d.getTime();
             loop = loop + (24 * 60 * 60 * 1000)) {
for (loop = start.toDate().getTime();
             loop <= end.toDate().getTime();
             loop = loop + (24 * 60 * 60 * 1000)) {