我使用FullCalendar插件来创建一个Web日历,并从我的mysql表中显示/插入事件。它正确显示了bd中的事件,但是没有以正确的格式插入事件的日期。 (YYYY-MM-DD)。 mysql表的两列都是DATE类型,其格式与将要插入的事件相同。
这是我的JS脚本,用于显示事件并通过ajax插入到mysql
$(document).ready(function() {
var date = new Date();
var dd = date.getDate();
var mm = date.getMonth();
var yyyy = date.getFullYear();
var calendar = $('#calendar').fullCalendar({
editable: true,
events: "http://localhost/test-fullcalendar/php/eventos.php",
lang: "es",
selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
var title = prompt('Evento a insertar:');
if (title) {
start = $.fullCalendar.moment('yyyy mm dd');
end = $.fullCalendar.moment('yyyy mm dd');
$.ajax({
url: 'http://localhost/test-fullcalendar/php/add_evento.php',
data: 'title='+ title+'&start='+ start +'&end='+ end ,
type: "POST",
success: function(json) {
alert('OK');
}
});
calendar.fullCalendar('renderEvent',
{
title: title,
start: start,
end: end,
allDay: allDay
},
true
);
}
calendar.fullCalendar('unselect');
}
});
});

问题在于Fullcalendar函数moment()的行:
start = $ .fullCalendar.moment(' yyyy mm dd');
结束= $ .fullCalendar.moment(' yyyy mm dd');
该功能未正确收到实际日期,只在我的桌子上插入" 0000-00-00" 。我尝试在moment()参数中传递日期,如:
var date = yyyy +' - ' + mm +' - ' + dd;
start = $ .fullCalendar.moment(date);
但它插入" 0000-00-00"太
答案 0 :(得分:0)
javascript函数date.getMonth()将在3月份返回2,但你想要'03'
所以请使用:
var mm = date.getMonth()+1;
mm=(mm<=9)?'0'+mm:mm;
答案 1 :(得分:0)
您的格式不正确,因此您实际上正在返回NaN
。
在您传递'yyyy mm dd'
的地方,您应该传递start
变量,所以:
$.fullCalendar.moment('yyyy mm dd');
应该是
$.fullCalendar.moment(start).format('YYYY MM DD');
此外,请注意您的日期格式必须为大写,每the Moment.js site个,并且可以更简单地写为moment(start).format('YYYY MM DD');
样本
$('#fullCal').fullCalendar({
header: {
left: '',
center: 'prev title next today',
right: ''
},
selectable: true,
select: function(start, end, allDay) {
var title = prompt('Evento a insertar:');
if (title) {
start = moment(start).format('YYYY MM DD');
end = moment(end).format('YYYY-MM-DD'); /* w/ dashes if that is what you need */
alert('start: ' + start + ' end: ' + end);
/*rest of your code... */
}
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.3/moment.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.1.1/fullcalendar.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.1.1/fullcalendar.min.js"></script>
<div id="fullCal"></div>
&#13;