我有一个MVC5应用程序,我正在使用Jquery FullCalendar。我必须通过所选月份的开始,以便我可以根据选择的月份/年份从数据库中获取数据,同时单击“日历”的“下一个”和“上一个”按钮。 我的代码如下:
$(document).ready(function () {
var calendar = $('#calendar');
// eventSources: [getCalData()],
$('#calendar').fullCalendar({
// calendar.fullCalendar({
header: {
left: 'prev,next ',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
// eventSources: [
// {
events: function (start, end, timezone, callback) {
$.ajax({
url: '/Calendar/GetEvents',
// dataType: 'json',
data: {
// our hypothetical feed requires UNIX timestamps
start: start.unix(),
},
success: function (doc) {
alert(start);
if (doc == null)
{
alert('no data');
}
else
{
alert(doc[0].title);
}
var events = [];
$.each(doc, function (index, event) {
$('#calendar').fullCalendar('renderEvent', event);
});
}
});
}
});
$('.fc-next-button').click(function () {
var date = $("#calendar").fullCalendar('getDate');
// alert('next is clicked, do something');
events: '@Url.Action("GetEvents", "Calendar")'
});
$('.fc-prev-button').click(function () {
//alert('prev is clicked, do something');
@Url.Action("GetEvents", "Calendar")
});
});
</script>
在我的控制器中:
public ActionResult GetEvents(double start)
{
System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
dtDateTime = dtDateTime.AddSeconds(start).ToLocalTime();
DateTime dt = DateTime.Now;
int year, month;
if (start != 0)
{
year = dtDateTime.Year;
month = dtDateTime.Month;
}
//some more code here
}
显示10月时获取的开始日期是“9月27日”。因为它是显示的第一个日期。但我希望选择月份的开始,即10月1日。
请帮助使用适当的javascript函数。我试过这个: - start:$('#calendar')。fullCalendar('getView')。visStart但是当visStart不存在时抛出异常。
使用的日历库是2.4.0。文件中使用的脚本标签是: -
<link href="~/Content/fullcalendar.css" rel="stylesheet" />
<script src="~/Scripts/jquery-1.11.3.min.js"></script>
<script src="~/Scripts/moment.min.js"></script>
<script src="~/Scripts/fullcalendar.js"></script>
答案 0 :(得分:0)
参数start在事件回调中的值,总是给出日历的开始日期。要获得当前显示月份,您可以使用以下代码。
var _currentdate = $("#calendar").fullCalendar('getDate');
var _date = new Date(_currentdate .year(), _currentdate .month() - 1, 1); //to fetch events from Oct 1st 2015