2017-06-14 61 views
0

我正在開發像this這樣的完整日曆,但不是創建事件,而是從數據庫中獲取它。將發佈日期限制爲完整日曆

所以現在我開發後端收到這樣一個事件的星期幾:![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(); 
    }); 
    } 

正如你可以看到我有一個函數的n稱爲function isGreaterThanToday(date),我用它來限制今天或今天之前發佈活動。我想要做這樣的事情,但我不知道如何調用這些布爾值,並比較例如:布爾值接收的週日日曆。有人能幫我嗎?問候

例如到我的功能我補充一下:

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

但我怎麼能和我的event.start和event.end DAY比較? enter image description here

回答

1

要使用moment.js獲取星期幾,請使用'e'作爲格式。結果將是星期一到星期天0..6。

event.start.format('e'); 

要檢查時間已過使用isAfter功能:

如果沒有被傳遞到重要時刻#isAfter,它會默認爲當前時間。

moment(event.start).isAfter();

現在,這兩個驗證約束相結合應該是這樣的:

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