fullCalendar没有显示正确的结束日期

时间:2015-09-21 21:56:57

标签: javascript jquery fullcalendar

我正在查看官方FullCalendar网站的debug page。我想安排从2015年9月22日到2015年9月30日(dd / mm / yyyy)的活动。但它只显示从2015年9月22日到2015年9月29日 - 2015年9月30日的日期缺失。

以下是代码:

$(function() { // document ready
   $('#calendar').fullCalendar({
     header: {
       left: 'prev,next today',
       center: 'title',
       right: 'month,agendaWeek,agendaDay'
     },
     defaultDate: '2014-11-12',
     editable: true,
     eventLimit: true, // allow "more" link when too many events
     events: [
        {
          title: 'Meeting',
          start: '2015-09-22',
          end: '2015-09-30'
        }
     ]
   });  
});

以下是输出图片:

enter image description here

此代码有什么问题?

5 个答案:

答案 0 :(得分:2)

不要将日期视为离散的日子,而是将其作为时间的连续性。日期2015-09-30隐含地给出时间00:00:00,即午夜。这意味着事件实际上不会延伸到30日,而是恰好当那天开始。

这为您提供了一个简单的解决方案。一天后结束活动:

end: '2015-10-01'

或者,从documentation

中取出
  

这是活动结束后的那一刻。例如,如果活动的最后一整天是星期四,则活动的独家结束时间为星期五00:00:00!

答案 1 :(得分:0)

确定显示正确的结束时间:

全天如:2015年9月23日至2015年9月30日(dd-mm-yyyy)
在"结束"

添加一天
$('#calendar').fullCalendar({    
  events: [
    {
      title: 'Meeting',
      start: '2015-23-09',
      end: '2015-01-10'
    }
  ]
}

对于mySql查询,请添加如下日期:

DATE_ADD(end_date, INTERVAL 1 DAY)

部分时间如下:从23-09-2015 12:00:00至2015-09-09 15:30:00(dd-mm-yyyy hh:mm:ss)
你需要设置fullcalendar" nextDayThreshold" paremeter所以从00:00开始这一天

$('#calendar').fullCalendar({    
  nextDayThreshold:'00:00:00',
  events: [
    {
      title: 'Meeting',
      start: '2015-23-09T12:00:00',
      end: '2015-30-09T15:30:00'
    }
  ]
}

答案 2 :(得分:0)

您可以尝试使用date_add()。

$date=date_create("2013-03-15");
date_add($date,date_interval_create_from_date_string("1 day"));

然后应用php来回显新的日期。

end: '<?php echo date_format($date,"Y-m-d"); ?>'

答案 3 :(得分:0)

尝试

    $('#calendar').fullCalendar({
        nextDayThreshold:'00:00', // not 00:00:00
   [...]

答案 4 :(得分:0)

enter image description here只需添加时间范围12:00:00至24:00:00

    events: [
     {
       title: 'Anniversary',
       start: '2018-01-21T12:00:00',
       end: '2018-01-23T24:00:00'
     }
    ]