gpt4 book ai didi

fullcalendar - 在 Fullcalendar 中更改过去事件的颜色

转载 作者:行者123 更新时间:2023-12-04 10:27:13 26 4
gpt4 key购买 nike

我正在尝试实现 this solution在 Fullcalendar 中“变灰”过去的事件,但我没有任何运气。不过,我不太精通 Javascript,所以我认为我犯了一些愚蠢的错误。

我已经将建议的代码放入 fullcalendar.js 中,在第 4587 行附近的 daySegHTML(segs) 调用中。

我在函数初始 var 列表的末尾添加了前两行(为什么不呢,我想)——所以是这样的:

...
var leftCol;
var rightCol;
var left;
var right;
var skinCss;

var hoy = new Date;// get today's date
hoy = parseInt((hoy.getTime()) / 1000); //get today date in unix

var html = '';
...

然后,就在下面,我在循环中添加了另外两行:
for (i=0; i<segCnt; i++) {
seg = segs[i];
event = seg.event;
classes = ['fc-event', 'fc-event-skin', 'fc-event-hori'];
if (isEventDraggable(event)) {
classes.push('fc-event-draggable');
}

unixevent = parseInt((event.end.getTime()) / 1000); //event date in Unix
if (unixevent < hoy) {classes.push('fc-past');} //add class if event is old

if (rtl) {
if (seg.isStart) {
classes.push('fc-corner-right');
}
...

运行此代码会导致呈现的日历不显示任何事件和错误消息:Uncaught TypeError: Cannot call method 'getTime' of null

所指的“空”显然是 event.end.getTime()。但我不确定我是否理解到底出了什么问题,或者事情是如何执行的。正如所写,它似乎应该起作用。在代码的这一点上,据我所知,event.end 包含一个有效的 IETF 时间码,但是由于某种原因,当我尝试通过 getTime() 运行它时它“不存在”?

这对我来说不是关键任务调整,但仍然很好 - 我也想了解发生了什么以及我做错了什么!非常感谢任何帮助!

最佳答案

如果您在 Google 日历中使用 FullCalendar2,则需要使用以下代码版本。这使用 Moment.js 进行一些转换,但由于 FC2 需要它,您已经在使用它了。

        eventRender: function(event, element, view) {                   
var ntoday = new Date().getTime();
var eventEnd = moment( event.end ).valueOf();
var eventStart = moment( event.start ).valueOf();
if (!event.end){
if (eventStart < ntoday){
element.addClass("past-event");
element.children().addClass("past-event");
}
} else {
if (eventEnd < ntoday){
element.addClass("past-event");
element.children().addClass("past-event");
}
}
}

关于fullcalendar - 在 Fullcalendar 中更改过去事件的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12632229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com