Jquery fullCalendar多日活动开始和结束时间
多日活动很少有一个开始和一个结束时间。例如,伯明翰动漫展可能会持续3天,但你不能在凌晨1点出现!在事件运行的三天中,每一天都有单独的开始和结束时间。我在文档中找不到关于每个事件的多个开始和结束时间的任何信息,还有其他人吗 编辑: 如果有人看到了这一点,并且想要获得相同的功能,我是通过添加“eventlength”和“firstend”、“secondstart”、“secondend”、“thirdstart”作为JSON值来实现的。这对我来说很有效,因为我所有的活动都不会超过三天。”eventlength'只是一个数字(1、2或3),其余的是时间/日期 在fullCalendars eventClick部分中,我有一个if语句,它循环遍历各种可能的事件长度并显示适当的值Jquery fullCalendar多日活动开始和结束时间,jquery,fullcalendar,Jquery,Fullcalendar,多日活动很少有一个开始和一个结束时间。例如,伯明翰动漫展可能会持续3天,但你不能在凌晨1点出现!在事件运行的三天中,每一天都有单独的开始和结束时间。我在文档中找不到关于每个事件的多个开始和结束时间的任何信息,还有其他人吗 编辑: 如果有人看到了这一点,并且想要获得相同的功能,我是通过添加“eventlength”和“firstend”、“secondstart”、“secondend”、“thirdstart”作为JSON值来实现的。这对我来说很有效,因为我所有的活动都不会超过三天。”event
$startDf = 'ddd Do H:mma';
$endDf = 'H:mma';
if(calEvent.eventlength == 2){
$this.find('#event__info .event-date').text((calEvent.start).format($startDf) + ' - ' + moment(calEvent.firstend).format($endDf) + '\n' + moment(calEvent.seccondstart).format($startDf) + ' - ' + (calEvent.end).format($endDf));}
else if(calEvent.eventlength == 3){
$this.find('#event__info .event-date').text((calEvent.start).format($startDf) + ' - ' + moment(calEvent.firstend).format($endDf) + '\n' + moment(calEvent.seccondstart).format($startDf) + ' - ' + moment(calEvent.seccondend).format($endDf) + '\n' + moment(calEvent.thirdstart).format($startDf) + ' - ' + (calEvent.end).format($endDf));}
else {
$this.find('#event__info .event-date').text((calEvent.start).format($startDf) + ' - ' + (calEvent.end).format($endDf));}
这将三天的活动显示为日历上的一个活动,但会输出以下内容,我认为这比有三个单独的一天活动更有意义,或者是一个从第一天上午10点到第三天下午4点连续开放的活动
星期日28日上午10:00至晚上22:00
星期一29日上午10:00-下午16:00
星期二30日上午10:00-下午16:00如果同一个“事件”有多个开始/结束时间,则fullCalendar将其视为单独的事件。如果有多天的事件,只需创建不同的事件并为其分配相同的Id
:
字符串/整数。可选的
唯一标识给定事件。重复的不同实例
所有事件都应该具有相同的id
您的事件列表可能类似于:
var myEvents = {
title: "Birmingham Comic Con",
start: new Date('2014-11-20T09:00'),
end: new Date('2014-11-20T19:00'),
id: 1
}, {
title: "Birmingham Comic Con",
start: new Date('2014-11-21T09:00'),
end: new Date('2014-11-21T19:00'),
id: 1
},
{
title: "Birmingham Comic Con",
start: new Date('2014-11-22T09:00'),
end: new Date('2014-11-22T19:00'),
id: 1
}
因此,如果您以后必须更新您的多日事件,只需按Id引用该事件即可
你可以查一下
评论后更新:
如果您真的想将事件维护为只有一个事件、多天只有一个事件的事件,您可以将自己的属性添加到事件对象中,但稍后您应该做额外的工作。对于EAX示例:
- 自定义类,以便在漫画大会关门时显示不同的类
- 在打开或关闭期间单击事件时,处理事件回调以更改方法
var myEvent = {
title: "Birmingham Comic Con",
start: new Date('2014-11-20T09:00'),
end: new Date('2014-11-22T19:00'),
id: 1,
isMultipleDay: true,
multipleDayEvents: [
{start: new Date('2014-11-20T09:00'),
end: new Date('2014-11-20T19:00'),
description: 'Day 1'
},
{
start: new Date('2014-11-21T09:00'),
end: new Date('2014-11-21T19:00'),
description: 'Day 2'
},
{
start: new Date('2014-11-22T09:00'),
end: new Date('2014-11-22T19:00'),
description: 'Day 3'
}
]
}
fullCalendar的文档不建议使用此选项。我不确定我应该尝试什么。我在文档中看到了这一点,我正在寻找一种方法,将它们作为一个事件,包含多个与它们相关的开始和结束时间数据。我想我可以创建一组虚拟数据,以便稍后提取,因此事件以一个开始时间和结束时间跨越所有三天,但在第一天、第二天、第三天有单独的字段,以及每天的开始时间和结束时间,因此当单击事件时,它会显示所有这些信息。这似乎是一个犹太人区的方式。我认为这是一个真正不同的方法,从fullCalendar标准的角度来看。但是,当然,你可以做很多额外的工作。我已经在你的评论后更新了答案。