我们使用jQuery完整日历来显示数据库中的事件。
我需要根据用户选择的月份onchange
在日历下面显示事件。我可以根据事件日期获取数据,但我无法在jQuery日历中获取用户选择的月份。
$('#calendar').fullCalendar({
theme: true,
header: {
left: 'today',
center: 'prevYear,prev,title, next,nextYear',
right: ' month,agendaWeek,agendaDay'
},
buttonText: {
prevYear: 'Prev'
},
editable: false,
events: [
<?php foreach ($edumeet_invite_det as $key => $edumeet_det): ?>
<?php $edumeet_start = $edumeet_det->getFromDate(); ?>
<?php $edumeet_end = $edumeet_det->getToDate(); ?>
<?php $title = $edumeet_det->getTitle(); ?>
{
title:'<?php echo $title; ?>',
start:'<?php echo $edumeet_start ?>',
end:'<?php echo $edumeet_end ?>',
allDay: false
},
<?php endforeach; ?>
],
eventColor: '#378006',
});
这是我正在使用的日历功能,我需要获得用户选择的月份onchange
。有人能解决这个问题吗?
也许我不完全理解你的问题,但听起来你只需要知道屏幕上的当前月份?
FullCalendar有一个"getDate"方法。
function getMonth(){
var date = $("#calendar").fullCalendar('getDate');
var month_int = date.getMonth();
//you now have the visible month as an integer from 0-11
}
如果你不是这么问的,我很抱歉。
可能对您有用的函数"getView":
- http://arshaw.com/fullcalendar/docs/views/View_Object/
获取日历月的第一天:
$(cal).fullCalendar('getView').start
获取日历月的最后一天:
$(cal).fullCalendar('getView').end
获取日历的第一个可见日期:(上个月的最后几天)
$(cal).fullCalendar('getView').visStart
获取日历的最后一个可见日期:(下个月的前几天)
$(cal).fullCalendar('getView').visEnd
上一个版本(2018)需要使用此代码!
jQuery("#your_selector").fullCalendar('getDate').month()
完整日历版本-4
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
...
...
});
calendar.render();
var cdate = calendar.getDate();
var month_int = cdate.getMonth();
alert((month_int+1)); // March 2020 month will return 3
});
</script>
这个解决方案对我有效。很高兴能帮助你。谢谢你提出这个问题。
有多种方法可以获取日期,下面是you can do it when you initialize the calendar
,使用它可以分别获取日期、月份和年份。
$('#calendar').fullCalendar({
dayClick: function(date, jsEvent, view) {
alert('Clicked on: ' + date.getDate()+"/"+date.getMonth()+"/"+date.getFullYear());
},
});
对于完整日历v2.6.1(2016-02-17)
function getMonth() {
var date = $("#calendar").fullCalendar('getDate');
month = date._d.getMonth()+1
console.log(month);
}
对于v5,您可以访问当前视图的View Object。这将包含currentStart
,它将是视图试图表示的间隔的开始。在月份视图中,这将是本月的第一个。
然后你可以使用类似的东西https://momentjs.com/解析日期并获取月份。
const currentMonth = moment(calendar.view.currentStart).month();