将发布日期限制为完整日历

时间:2017-06-14 15:58:26

标签: calendar fullcalendar

我正在开发像this这样的完整日历,但我没有创建事件,只是从数据库中获取它。

所以现在我开发Backend以接收这样的事件的一周中的几天:![enter image description here

如您所见,我在一周内的几天内收到了布尔值

现在我想限制如果其中一天失败,日历不允许我这样做

JS功能:

function isGreaterThanToday(date) {
    return date < hoy ? false : true;
}

function updateAssignedEvent(event, delta, revertFunc) {

    if (!isGreaterThanToday(event.start)) {
        mostrarError("Cant post an event today or before today.");
        revertFunc();
        return;
    }

    event.start = $.fullCalendar.moment(moment($.fullCalendar.moment(event.start.format())._i));

    event.end = event.end ? $.fullCalendar.moment(moment($.fullCalendar.moment(event.end.format())._i)) : event.start;

    event.color = getTareaCalendarioColor(event.tipoResponsable,
      event.estatusTarea,
      event.start,
      event.end.diff(event.start, 'hours') <= 24 ? event.start : event.end);

    updateEvent(event).then(function(data) {
        if (!data.success) {
            revertFunc();
            return;
        }
        event.end = event.end !== event.start ? event.end.add(1, 'day') : event.end;
        $calendar.fullCalendar('updateEvent', event);
    }, function(error) {
        revertFunc();
    });
}

正如您所看到的,我有一个名为function isGreaterThanToday(date)的函数,我用它来限制今天或今天之前发布的事件。我想做这样的事情,但我不知道如何调用这些布尔值并比较日历的星期日和布尔接收的星期日。任何人都可以帮助我吗?此致

例如在我的函数中添加:

if (event.accion.agendarDomingo != true) {
    mostrarError("Sunday is not allowed");
    revertFunc();
    return;
}

但我怎样才能与event.startevent.end DAY进行比较?enter image description here

1 个答案:

答案 0 :(得分:1)

要使用moment.js使用&#39; e&#39;作为一种格式。结果将是周一至周日的0..6。

event.start.format('e');

要检查时间是否通过,请使用isAfter功能:

  

如果没有任何内容传递到#isAfter,它将默认为当前时间。

moment(event.start).isAfter();

现在这两个验证约束组合如下:

function isDateValid(date) {
    return date.format('e') !== "6" && moment(date).isAfter();
}