Javascript moment.js:423未捕获类型错误:无法读取属性'_日历';未定义的
我使用的是fullcalendar,我要做的是当用户单击事件时,询问用户是否希望延长上课时间。如果用户之前取消了课程(在我的数据库中),那么用户可以将上课时间延长15分钟。因此,如果用户可以扩展该类,那么可以使用ajax和php将信息发送到mysqlDB。然而,问题是所有的信息,即endDate、startDate和canceledCourseDate,以及end(extend之前的endDate),都正确地发送到ajax,但我得到了错误 未捕获的TypeError:无法读取未定义的属性“\u calendar” 因此,我搜索了一些信息,并添加了.format(“YYYY-MM_DD HH:MM”),但仍然存在问题 下面是js代码Javascript moment.js:423未捕获类型错误:无法读取属性'_日历';未定义的,javascript,ajax,fullcalendar,momentjs,Javascript,Ajax,Fullcalendar,Momentjs,我使用的是fullcalendar,我要做的是当用户单击事件时,询问用户是否希望延长上课时间。如果用户之前取消了课程(在我的数据库中),那么用户可以将上课时间延长15分钟。因此,如果用户可以扩展该类,那么可以使用ajax和php将信息发送到mysqlDB。然而,问题是所有的信息,即endDate、startDate和canceledCourseDate,以及end(extend之前的endDate),都正确地发送到ajax,但我得到了错误 未捕获的TypeError:无法读取未定义的属性“\u
var canceledList = <?php echo $json_array4; ?>; //not newlyBooked canceled Date List
var canceledListNum = canceledList.length;
var extensionList = <?php echo $json_array10; ?>;
var extendedListNum = extensionList.length;
var canceledDate = '';
var extensionStatus = 'going';
if(extendedListNum > 0)
{
canceledDate = extensionList[0]['canceledCourseDate']; //get canceledDate that is alreay in extension
}
else if(canceledListNum > 0)
{
canceledDate = canceledList[0]['canceledCourseDate']; //if there is no course that is in extension, then get new canceledDate that isn't done yet.
extensionStatus = 'new';
}
var id = calEvent.id;
var teacher = calEvent.resourceId;
var extendedDate = moment(calEvent.start.format("YYYY-MM-DD HH:mm"));
var end = moment(calEvent.end.format("YYYY-MM-DD HH:mm"));
var endDate = moment(end).add(15, 'minutes');
console.log(start);
console.log(extendedDate);
console.log(end);
console.log(endDate);
console.log(canceledDate);
var limit = 2;
var userDuration = '<?php echo $userDuration; ?>';
if(userDuration == '60')
{
limit = 4;
}
if(id == '<?php echo $userID; ?>')
{
}
else // extend lesson
{
if(new Date(start) < new Date(today))
{
alert("cannot extend the class");
}
else{
if(canceledDate == '')
{
alert("cannot extend the class");
}else
{
$.ajax({
url:"extend.php",
type:"POST",
data:{userName: '<?php echo $name; ?>' , canceledCourseDate: canceledDate, extendedDate: extendedDate , endDate: endDate ,courseTeacher : teacher, userBranch:'<?php echo $userBranch; ?>', userID: '<?php echo $userID; ?>', duration : '<?php echo $userDuration; ?>', originalEnd : end, extensionStatus: extensionStatus},
success:function(response)
{
console.log(response);
$("#calendar").fullCalendar('refetchEvents');
alert("Successfully extended.");
location.reload();
}
});
}
}
}
}
var canceledList=//未新预订的取消日期列表
var canceledListNum=canceledList.length;
var extensionList=;
var extendedListNum=extensionList.length;
var canceledDate=“”;
var extensionStatus='going';
如果(extendedListNum>0)
{
canceledDate=扩展列表[0]['CanceledCoursedDate'];//获取扩展中始终存在的canceledDate
}
否则如果(canceledListNum>0)
{
canceledDate=canceledList[0]['CanceledCoursedDate'];//如果扩展中没有课程,则获取尚未完成的新canceledDate。
extensionStatus='new';
}
var id=calEvent.id;
var teacher=calEvent.resourceId;
var extendedDate=时刻(calEvent.start.format(“YYYY-MM-DD HH:MM”);
var end=力矩(calEvent.end.format(“YYYY-MM-DD HH:MM”);
var endDate=时刻(结束)。加上(15,'分钟');
console.log(启动);
console.log(extendedDate);
控制台日志(结束);
console.log(endDate);
控制台日志(取消日期);
var限值=2;
var userDuration='';
如果(userDuration='60')
{
限值=4;
}
如果(id='')
{
}
else//扩展课程
{
if(新日期(开始)<新日期(今天))
{
警报(“无法扩展该类”);
}
否则{
如果(取消日期=“”)
{
警报(“无法扩展该类”);
}否则
{
$.ajax({
url:“extend.php”,
类型:“POST”,
数据:{userName:'',canceledCourseDate:canceledDate,extendedDate:extendedDate,endDate:endDate,CourseTacher:teacher,userBranch:'',userID:'',duration:'',originalEnd:end,extensionStatus:extensionStatus},
成功:功能(响应)
{
控制台日志(响应);
$(“#日历”).fullCalendar('refetchEvents');
警报(“成功扩展”);
location.reload();
}
});
}
}
}
}
这是控制台的图像
这是行不通的。但是,
var endDateForAdd = moment(endDate).format("YYYY-MM-DD HH:mm");
这是有效的 见此:
var endDateForAdd = moment(endDate).format("YYYY-MM-DD HH:mm");