使用Moment.js和FullCalendar处理日期无关的事件
Handling date-agnostic events with Moment.js and FullCalendar
我正在尝试使用FullCalendar,因为它是一个相当先进和全面的库。
我的数据是这样的:
{
"classes":[
[
{
"name":"ECEC 301 Advanced Programming for Engineers Lecture",
"days":"MWF",
"times":"02:00 pm - 03:20 pm",
"crn":"11215"
},
{
"name":"ECEC 301 Advanced Programming for Engineers Lab",
"days":"W",
"times":"09:00 am - 10:50 am",
"crn":"11216"
}
]
]
}
事件中的日期是日期不可知论的。但是它们有两个键:
days
-它们以MTWRF
的格式出现,每个字符代表一周中的每一天
times
- from
和to
的时间跨度
我知道Moment.js库可以处理日期,但我完全不知道如何处理这种格式的日期。
这是我目前为止写的:
$('#calendar').fullCalendar({
editable: false,
weekMode: 'liquid',
handleWindowResize: true,
weekends: false,
defaultView: 'agendaWeek',
events: [{
// add JSON data here..
}, {
// add JSON data here..
}]
});
这是每周视图的JSFiddle:
http://jsfiddle.net/pLodk6oz/1/由于您获得的日期为单个字母,即MWF为星期一,星期三,星期五,我建议您创建一个全局dataset
并在AddEventSource
事件中使用它
像这样声明全局数据集
var myDataset = {
"classes": [
[{
"name": "ECEC 301 Advanced Programming for Engineers Lecture",
"days": "MWF",
"times": "02:00 pm - 03:20 pm",
"crn": "11215"
}, {
"name": "ECEC 301 Advanced Programming for Engineers Lab",
"days": "W",
"times": "09:00 am - 10:50 am",
"crn": "11216"
}],
[{
"name": "ECEC 301 Advanced Programming for Engineers Lecture",
"days": "MWF",
"times": "02:00 pm - 03:20 pm",
"crn": "11215"
}, {
"name": "ECEC 301 Advanced Programming for Engineers Lab",
"days": "F",
"times": "02:00 pm - 03:50 pm",
"crn": "11217"
}]
]
};
然后您可以使用addEventSource
事件来连接您的自定义日期。
$('#calendar').fullCalendar('addEventSource',
function(start, end, timezone, callback) {
这里有一个工作的JSFIDDLE
编辑:我不会单独邀功。我使用addEventSource
方法与3个参数,因为我的fullCalendar版本是旧的,这是失败的@theGreenCabbage。他发现新版本使用了一个额外的参数,即timezone
,更新后它可以正常工作。
相关文章:
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- Javascript:如何在onChange事件期间更改日期时间值
- jQuery完整日历添加事件,仅包含月份和日期
- 可以'如果我隐藏某些日期,则不要在FullCalendar中拖动事件
- 从datetimepicker引导程序上点击的日期获取点击事件
- 如何将事件的日期放入fullcalendar中的日期对象中
- Day在完整日历中单击特定日期的事件警报
- 日期选择器更改事件抛出”;TypeError:字符串不是函数;
- 带有日期选取器的事件
- EditableField的JQuery Catch-onChange事件-日期选择器
- 如何在全日历中使用事件日期删除事件
- 使用 JavaScript 检查事件日期是否有效
- 完整日历日单击并删除了时区更改的事件日期问题
- DatePicker、FullCalendar和MySQL事件日期最终会缩短一天
- 检查日期和显示直到事件日期
- 事件日期的FullCalendar警报
- 我想在谷歌地图上显示事件日期标记
- 我需要计算申请日期和事件日期之间的天数
- 字段'事件日期'类型'日期时间'不能在查询筛选器表达式中使用
- 将用户直接带到事件日期与当前日期匹配的页面(分页)