我正在自定义构建一组事件来填充日历显示,但似乎根本无法显示。我认为这是关于日期格式。
我正在创建的事件对象有一系列日期参数,这些参数被构造成一个日期字符串,如下所示:
eventArray[i].end = eventArray[i].endYear + '-' + eventArray[i].endMonth + '-' + eventArray[i].endDay + ' ' + eventArray[i].endHours + ':' + eventArray[i].endMins + ':' + eventArray[i].endSecs;
console.log(eventArray[i].end);
eventArray[i].start = eventArray[i].startYear + '-' + eventArray[i].startMonth + '-' + eventArray[i].startDay + ' ' + eventArray[i].startHours + ':' + eventArray[i].startMins + ':' + eventArray[i].startSecs;
console.log(eventArray[i].start);
控制台日志上的输出字符串是(例如)
2014-2-11 22:0:0
2014-2-11 21:0:0
然后,当我从数组中对实际对象执行console.log时,我会突然将日期字符串重新格式化为
end: Tue Feb 11 2014 22:00:00 GMT+0000 (GMT Standard Time)
__proto__: Invalid Date
这是Chrome开发控制台中的输出。
关于(a)为什么这会被自动格式化为无效日期,以及(b)我如何将其修复为有效对象,有什么想法吗?如果有帮助的话,下面还将显示同一对象的完整控制台。
_end: Tue Feb 11 2014 22:00:00 GMT+0000 (GMT Standard Time)
_id: "someIDString"
_start: Tue Feb 11 2014 21:00:00 GMT+0000 (GMT Standard Time)
allDay: true
className: Array[0]
color: "#66CC66"
end: Tue Feb 11 2014 22:00:00 GMT+0000 (GMT Standard Time)
endDay: "11"
endHours: "22"
endMins: "0"
endMonth: "2"
endSecs: "0"
endYear: "2014"
id: "00Ub00000038hA6EAI"
source: Object
start: Tue Feb 11 2014 21:00:00 GMT+0000 (GMT Standard Time)
startDay: "11"
startHours: "21"
startMins: "0"
startMonth: "2"
startSecs: "0"
startYear: "2014"
title: "Desk Booking"
所以我通过在事件中硬编码allDay参数为false来解决这个问题。该事件现在按预期正确显示在日历上。