当我调用函数显示日历时,我想将初始月份设置为任意月份。
例如,假设用户在其他地方选择了去年6月(2011年6月)的日期,并且我希望fullcalendar出现在4月份(2010年4月)的月份显示之前。是的,这只是为了提出一个案例,而不是有意义;-))
在我随后调用显示功能之前我试着调用'gotodate',但这似乎不起作用
$('#calendar').fullCalendar( 'gotoDate', currentdate);
$('#calendar').fullCalendar({
header: {left: 'prevYear,prev,today,next,nextYear',
center: 'title', right: 'month,basicWeek,basicDay' etc...}
最终有人可以提供一个如何正确执行此操作的示例吗?
答案 0 :(得分:80)
初始化时,您应该使用选项'year','month'和'date'来指定fullcalendar使用的初始日期值:
$('#calendar').fullCalendar({
year: 2012,
month: 4,
date: 25
}); // This will initialize for May 25th, 2012.
查看setYMD(date,y,m,d)
文件中的函数fullcalendar.js
;请注意,使用了JavaScript setMonth,setDate和setFullYear函数,因此您的月份值必须为0(Jan为0)。
UPDATE :正如其他人在评论中指出的那样,现在正确的方法(编写此编辑时的V3)是将defaultDate属性初始化为
的值Moment构造函数接受的任何内容,包括ISO8601日期 字符串如“2014-02-01”
因为它使用Moment.js。 Documentation here
更新示例:
$('#calendar').fullCalendar({
defaultDate: "2012-05-25"
}); // This will initialize for May 25th, 2012.
答案 1 :(得分:47)
你倒退了。首先显示日历,然后调用gotoDate
。
$('#calendar').fullCalendar({
// Options
});
$('#calendar').fullCalendar('gotoDate', currentDate);
答案 2 :(得分:28)
根据machineAddict的评论,从版本2及更高版本开始,year, month and day
已被defaultDate
取代,Moment支持{{3}}等构造函数。 1}}日期字符串或Unix纪元。
所以,例如使用给定日期初始化日历:
ISO 8601
答案 3 :(得分:5)
您只需传递一个$('#calendar').fullCalendar({
defaultDate: new Date()
});
对象:
目前的日期:
$('#calendar').fullCalendar({
defaultDate: new Date(2016, 4, 20)
});
具体日期'2016-05-20':
version: '2'
services:
registry:
restart: always
image: registry:2.3.1
ports:
- 5000:5000
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/live/git.xxxx.com/fullchain.pem
REGISTRY_HTTP_TLS_KEY: /certs/live/git.xxxx.com/privkey.pem
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
volumes:
- ./data:/var/lib/registry
- /etc/letsencrypt:/certs
- ./auth:/auth
答案 4 :(得分:3)
我在gotoDate
回调中呼叫viewRender
时运气更好:
$('#calendar').fullCalendar({
firstDay: 0,
defaultView: 'basicWeek',
header: {
left: '',
center: 'basicDay,basicWeek,month',
right: 'today prev,next'
},
viewRender: function(view, element) {
$('#calendar').fullCalendar( 'gotoDate', 2014, 4, 24 );
}
});
在回调之外拨打gotoDate
由于竞争条件而没有预期的结果。
答案 5 :(得分:2)
在2.1.1版本中,这有效:
$('#calendar').fullCalendar({
// your calendar settings...
});
$('#calendar').fullCalendar('gotoDate', '2014-05-01');
有关时刻/日期格式的文档:http://fullcalendar.io/docs/utilities/Moment/ 有关第2版升级的文档:https://github.com/arshaw/fullcalendar/wiki/Upgrading-to-v2
答案 6 :(得分:0)
如果您不想加载日历两次并且您没有实现defaultDate的版本,请执行以下操作:
更改以下方法:
function Calendar(element, options, eventSources) {
...
var date = options.defaultDate ? options.defaultDate : new Date();
...
}
为:
{{1}}
答案 7 :(得分:0)
对于v5,请使用initialDate而不是defaultDate。只是重命名了选项
例如
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
...
initialDate: '2020-09-02',
...
});
答案 8 :(得分:0)
此功能可在v5.3.2中用于初始化后的日期
calendar.gotoDate( '2020-09-12' );
例如更改日期选择器
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
...
initialDate: '2020-09-02',
...
});
$(".date-picker").change(function(){
var date = $(this).val();
calendar.gotoDate( date );
});