【发布时间】:2018-02-02 03:31:22
【问题描述】:
我正在使用完整日历,并试图查看创建的活动是否与我定义为工作时间一部分的午休时间重叠。这是我的代码
function isCalendarEventOverlappingBusinessHour(event)
{
var evts = businessHoursArr;
for (i in evts)
{
var start_moment=moment(evts[i].start, 'MMM DD').format();
var end_moment=moment(evts[i].end);
if (event.start.isBefore(end_moment) && event.end.isAfter(start_moment))
{
return true;
}
}
return false;
}
我无法比较活动开始时间和工作时间开始时间,因为在工作时间,时间以字符串格式定义为08:00:00。我想把它转换成片刻,这样我就可以比较时间了。谁能推荐一个方法?
我的活动格式如下:
events.push({
id: guid(),
title: eventTitle,
start: moment(date),
end: moment(date).add(defaultTimedEventDuration,'hours'),
stick: true,
});
我的营业时间看起来像
{
dow:[1,2,3,4,5]
start:08:00:00
end:12:00:00
},
{
dow:[1,2,3,4,5]
start:13:00:00
end:17:00:00
}
【问题讨论】:
-
只是你的格式字符串不对。对于时间,它将是 HH:mm:ss。 momentjs.com/docs/#/parsing/string-formats
-
@kra3 抱歉,我的意思是 HH:mm:ss。忽略标题中的大写字母
-
var start_moment=moment(evts[i].start, 'HH:mm:ss')
-
为什么需要这样做?如果您按照文档中的说明将
selecConstraint设置为“businessHours”,则日历根本不会让任何人选择businessHours 之外的时间段。 fullcalendar.io/docs/selection/selectConstraint
标签: javascript fullcalendar momentjs