当前位置: 首页 > 知识库问答 >
问题:

按开始日期和结束日期在Fullcalendar中排序事件

盖斌
2023-03-14

如何先按开始日期在fullCalendar中排序事件?

示例:

  • 首先开始的事件将显示在顶部,随后开始的事件将显示在后面
  • 如果两个事件的开始日期相同,则按结束日期对它们进行排序,即先显示一个较早结束的事件,然后显示一个较晚结束的事件。

日历显示事件顺序

var args = jQuery.parseJSON(emCalendarArgs);
var Jobj = args.events;

// Setup FullCalendar

(function() {
  //var language = jQuery('#pg_lang').val();
  //alert(language+ 'dsfsd');
  var date = new Date();
  var d = date.getDate();
  var m = date.getMonth();
  var y = date.getFullYear();
  var language = langg;
  var mn_text, week_text, day_text, list_text;

  //alert(mn_text);
  var args = jQuery.parseJSON(emCalendarArgs);
  var Jobj = args.events;
  console.log(Jobj);
  jQuery('#events-full-calendar').fullCalendar({

    allDaySlot: false,
    editable: true,
    lang: 'he',
    handleWindowResize: true,
    eventOrder: 'start,end',
    header: {
      left: 'today prev,next',
      center: 'title',
      right: 'month,basicWeek,basicDay'
    },
    buttonText: {
      month: mn_text,
      week: week_text,
      day: day_text
    },
    eventLimit: {
      'month': 3, // adjust to 4 only for months
      'default': false // display all events for other views
    },
    axisFormat: 'HH:mm',
    timeFormat: {
      agenda: 'H:mm{ - h:mm}'
    },
    slotEventOverlap: false,
    events: Jobj,
    timeFormat: 'H:mm',
  });
}());

共有1个答案

闽焕
2023-03-14

我找到了解决办法。对于任何其他正在寻找解决方案的人,我在FullCalendar.js中更改了一个函数:

compareSegs: function(seg1, seg2) { return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1) compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs); } 

致:

compareSegs: function(seg1, seg2) {
        if(this.view.name=="basicWeek" || this.view.name=="month" || this.view.name=="basicDay"){ // ordering events by color in ListView
        return seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1)
            compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs);
        }
        else{
            return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first
                        seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first
                        seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1)
                        compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs);
        }
    }

并在fullcalendar函数中的代码下面使用

eventOrder: 'start, end' 

在我的完整日历呼叫中

 类似资料:
  • 这(我希望)是一个基本问题。我没有在fullcalendar中看到日历事件,我认为问题是我尝试用于开始/结束事件的日期格式。我试图通过加载JSON事件来设置一个基本日历。下面是我的JSON输出(为了不占用太多空间,修剪为一个事件): 我的javascript如下所示: 再说一遍,非常基本。我确定事件未出现的问题是由于我使用的日期格式造成的,但我不确定如何告诉fullCalendar使用格式来使用m

  • 问题内容: 我想检查日期是否在开始日期和结束日期之间。 我添加了一个where子句 但问题在于它不包含“ 2010-04-15”。 它应该包括结束日期,我该怎么办? 请帮我 问候, 潘卡 问题答案: 明确指定时间部分:

  • 问题内容: 我一直在尝试从时间戳字段中的第一个日期到最后一个日期生成一系列日期(YYYY-MM-DD HH)。我已经有了所需的内容,但是在尝试从表中获取开始日期和结束日期时遇到了一个问题。我有以下一个大概的想法: Postgres 9.3 问题答案: 您不需要CTE,这将比必要的成本更高。 而且您不需要强制转换为,当您向类型提供数据时,结果已经 是 数据类型。详细信息在这里: 在PostgreSQ

  • 问题内容: 好吧,假设我有一个看起来像这样的表: 任何人都有关于如何查询它的想法,因此数据看起来像 问题答案: 我不会将ID放在这里,因为我认为它与查询无关。如果您愿意,请稍后再说。这是一个MSSQL查询。 可以很容易地将其翻译为其他数据库类型。

  • 问题内容: 我在从表中显示正确的数据时遇到了麻烦。我不太确定要搜索什么。我不确定min(column)或max(column)在这里对我有帮助。让我们看看我是否可以解释我的问题。 我的表包含以下数据: 我将以一种观点来介绍这一点。它将按代码分组。 我想要的是此输出: 如您所见,DateTo和DateFrom之间是否存在间隙,我希望将其显示为两行。但是,如果具有相同代码的下一个“ DateFrom”

  • 问题内容: 如果可能的话,在以下情况下,我希望使用joda或非joda解决方案 假设我的一周从2012年5月2日开始,给定的当前日期为02/22/2011。我需要计算给定当前日期的星期开始和结束日期。因此,我的解决方案的星期应该从02/19开始,而星期在02/25结束。为简单起见,我将我的工作日设置为02/05/2011,但是可能是任何一天,我的工作日始终为7天。 我现有的代码如下,但似乎无法按预