【发布时间】:2017-05-19 09:27:07
【问题描述】:
我想设置当前日期以在完整日历中开始周视图。
按照我们归档所有视图(月和周)的方式:
calendar: {
firstDay:moment().day();
}
【问题讨论】:
标签: jquery angular fullcalendar
我想设置当前日期以在完整日历中开始周视图。
按照我们归档所有视图(月和周)的方式:
calendar: {
firstDay:moment().day();
}
【问题讨论】:
标签: jquery angular fullcalendar
将默认视图设置为周视图。
$('#calendar').fullCalendar({
header: {
...
},
defaultView: 'month',
.
.
}
有关完整日历提供的可用视图的更多信息,请访问here
【讨论】:
你可以这样调用函数
function getMonday(d) {
d = new Date(d);
var day = d.getDay(),
diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday
return new Date(d.setDate(diff));
}
calendar: {
firstDay:getMonday(new Date())
}
【讨论】:
虽然这个问题被问到已经有一段时间了,但这可能会在未来对其他人派上用场。就我而言,我最终通过检查viewRender 回调的当前视图来动态更新选项firstDay。
var currentView = '',
d = new Date(),
today = d.getDay(),
dow = 1;
$('#calendar').fullCalendar({
header: {
left: 'prev,next',
center: 'title',
right: 'month,agendaWeek'
},
defaultDate: d,
navLinks: true,
firstDay: 1, //Monday
viewRender: function(view) {
if (view && view.name !== currentView) {
if (view.name === 'agendaWeek') {
dow = today;
} else {
dow = 1;
}
setTimeout(function() {
$("#calendar").fullCalendar('option', 'firstDay', dow);
}, 10);
}
if (view) {
currentView = view.name;
}
}
});
这是working example。在周视图和月视图之间切换,第一天将从月视图中的星期一更改为周视图中的当前日期。
【讨论】:
经过测试,似乎无法为特定视图设置 firstDay。如我错了请纠正我。根据https://fullcalendar.io/docs/views/View-Specific-Options/,我尝试使用特定于视图的选项:
views: {
agendaWeek: { // name of view
firstDay: moment().day()
}
}
但它似乎对相关视图没有影响。我也尝试了其他视图(例如月份),但也没有用。所以我不认为你可以为每个视图定义不同的“firstDay”。
这只是我的观点,但我认为对于不同的观点有不同的第一天可能会让用户感到困惑,所以这可能是不可能的原因。
【讨论】: