我正在使用fullcalendar在网页上显示日历(毫不奇怪(。
用户可以在日历上添加事件,然后将其通过POST
传递给CodeIgniter
控制器。控制器在模型中执行一个函数,以将数据插入数据库中。
我面临的问题是,在数据库中插入的日期时间添加了4分钟,原因是我不了解的原因。
这是用于FullCalendar的JavaScript:
$(document).ready(function() {
var today = moment().day();
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
defaultView: 'agendaWeek',
eventLimit: true, // allow "more" link when too many events
selectable: true,
selectHelper: true,
select: function(start, end) {
var title = "<?=$anim['NOMANIM']?>";
var id = "<?=$anim['CODEANIM']?>";
if (title) {
start = moment(start).format('YYYY-MM-DD HH:mm:ss');
end = moment(end).format('YYYY-MM-DD HH:mm:ss');
$.ajax({
url: '<?php echo base_url("index.php/activite/add_activite"); ?>',
data: 'title='+ title+'&id='+ id+'&start='+ start +'&end='+ end,
type: "POST",
success: function(json) {
alert(start); // THIS SHOWS THE CORRECT DATETIME
}
})
};
$('#calendar').fullCalendar('renderEvent',
{
title: title,
start: start,
end: end,
}, true); // stick? = true
$('#calendar').fullCalendar('unselect');
},
events: <?=$events?>
});
});
这是控制器函数:
public function add_activite() {
$title = $_POST['title'];
$id = $_POST['id'];
$datetime_start = strtotime($_POST['start']);
$datetime_end = strtotime($_POST['end']);
$date = date('Y-m-d', $datetime_start);
$start = date('H:m:s', $datetime_start);
$end = date('H:m:s', $datetime_end);
$this->EZ_query->insert_activite($date, $start, $end);
}
如果您认为我在时间问题旁边做的事情不正确,我对任何指针都开放::),谢谢!
您的PHP中的数据格式不正确,分钟数通过i
而不是m
表示(已经使用了我的一个月(。请参阅此处:http://php.net/manual/en/function.date.php
所以更改:
$start = date('H:i:s', $datetime_start);
$end = date('H:i:s', $datetime_end);