DateTime从FullCalendar转换为控制器PHP



我正在使用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);

相关内容

  • 没有找到相关文章

最新更新