渲染endDate就好像它们包含

时间:2015-07-29 13:27:17

标签: fullcalendar

我意识到,按照设计,它的目标是fullcalendar endDates是独家的,但我正在寻找帮助,以便在我的约束下使用它。

存储的数据是简单的英国日期格式:

YYYY-MM-DD

开始时间:2015-01-18

结束:2015-01-19

我想保持简单的一整天活动的外观,而不是时间戳的风格,我不能在结束月份时结束日期+1结束日期?

我试过戳源js,删除那里的任何-1更正。这适用于我的多日活动,但随后使一天活动看起来像是两天的活动。

方案即可。用户选择开始日期和结束日期(假期) 所以这可能是星期一到星期五。用户不要选择时间,只选择日期。当然,他们会选择他们想要度假的日期作为包容性。

预期的行为。
2015年1月18日 - 2015年1月18日将突出整整一天。

2015年1月18日 - 2015年1月19日将突出显示两整天(包含天)

2015年1月18日 - 2015年1月20日将突出显示三整天(包含天数)

etc..etc

实际行为。

2015年1月18日 - 2015年1月18日将突出整整一天。

2015年1月18日 - 2015年1月19日将突出显示一个全天(独家结束日)

2015年1月18日 - 2015年1月20日将突出显示两个整天(独家结束日)

对建议,修复,变通方法,肮脏的黑客开放。 感谢

2 个答案:

答案 0 :(得分:0)

我可能会误解,但这是一个可能的解决方案。

eventDataTransform内(为每个事件调用),为每个开始和结束日期添加时间。像

这样的东西
eventDataTransform: function(eventData){
    eventData.start.startOf('day');
    eventData.start.endOf('day');
}

答案 1 :(得分:0)

感谢slicetoad提供了eventDataTransform的提示。我只需找到实际在结束日期添加1的正确方法。对于任何一个好奇的人(我不确定我是否完全理解它是如何工作的),但是为期一天的事件仍然是一天的事件,即使看起来我们还要添加一个到最后?

events:  
        {
        url: '<?php echo base_url();?>index.php/jsonfeed',
        error: function() 
              {
              alert('error');
               },
         },
eventDataTransform: function(eventData) 
        {
        eventData.end = moment(eventData.end).add(1, 'days').format();
        return eventData;
        },