2017-03-31 48 views
1

在我的模式我有兩個輸入文本框startTime和使用jquery timepicker結束時間開始從輸入文本框fullcalendar時間和結束時間如何設置使用jQuery timepicker

enter image description here

我能堅持事件在從jquery ui日曆中選擇正確的日期,但我怎樣才能得到開始時間和結束時間的值,然後在fullcalendar中設置這些值?

enter image description here

我知道如何讓價值在這些輸入例如$('#startTime')。val()但堆積在那裏以將其設置爲fullcalendar的開始時間。

下面是我的代碼:

function setTimeValues(x,y) 
{ 
    var startHour = parseInt($('#startTime').val()); 
    var endHour = parseInt($('#endTime').val()); 

    //x = moment(x) 
    //   .set({ hour: parseInt(_startHour), minute: parseInt(_startMinutes), date: parseInt(_day), month: parseInt(_month), year: parseInt(_year) }) 
    //   .toDate(); 

    // y = moment(y) 
    //   .set({ hour: parseInt(_endHour), minute: parseInt(_endMinute), date: parseInt(_day), month: parseInt(_month), year: parseInt(_year) }) 
    //   .toDate(); 



    $("#calendar").fullCalendar('renderEvent', 
    { 
     title: $('#CustomerFullName :selected').text(), 
     description: $('#description').val(), 
     start: x, 
     end: y, 
     allDay: false 
    }, 

     true) 

謝謝!

+0

我不確定jquery timepicker如何返回值,但parseInt可能會破壞數據 – Daffy13

+0

我實際上做了它,但事件並未在fullcalendar中呈現。 –

+0

我同意@Daffy,在開始,結束變量你應該使用日期作爲[這個格式](https://en.wikipedia.org/wiki/ISO_8601)例如'2010-01-07' –

回答

0

我終於找到了一個解決方案,使用javascript日期函數實例化並追加輸入元素的實際值。下面 是代碼

var startHour = $('#startTime').val(); 
    var endHour = $('#endTime').val(); 

    var s = new Date("April 9, 2016 " + startHour) 
    var e = new Date("April 9, 2016 " + endtHour) 

,並在此之後,使用時刻JS來設置日期,小時,分鐘,雙方開始日期和結束日期

 x = moment(x) 
       .set({ hour: parseInt(s.getHours() - 8), minute: parseInt(s.getMinutes()), date: parseInt(_day), month: parseInt(_month), year: parseInt(_year) }) 
       .toDate(); 

    y = moment(y) 
       .set({ hour: parseInt(e.getHours() - 8), minute: parseInt(e.getMinutes()), date: parseInt(_day), month: parseInt(_month), year: parseInt(_year) }) 
       .toDate(); 

正如您所注意到的,我減去8,因爲由於某些原因,fullcalendar總是添加8小時從來自輸入元件的jquery timepicker的初始值,所以我減去8.

代碼fullcalendar

$("#calendar").fullCalendar('renderEvent', 
    { 
     title: $('#CustomerFullName :selected').text(), 
     description: $('#description').val(), 
     start: x, 
     end: y, 
     allDay: false 
    }, 
2

嘗試日期格式如下yyyy-mm-dd那麼時間選擇器如下:

$(document).ready(function(){ 
    //init 
    $('#startTime').timepicker({ timeFormat: 'H:i' }); 
    $('#endTime').timepicker({ timeFormat: 'H:i' }); 
}); 

然後在start & end變量使用:

start: x + "T" + startHour + ":00", 
end: y + "T" + endHour + ":00", 

而且不要忘了,從開始刪除parseInt &結束小時,因爲您只需要格式化文本

+0

嗨,它不起作用。此代碼的工作原理,但只有當我parseInt小時和分鐘(硬編碼),而不是來自輸入 x = moment(x) .set({小時:parseInt(_startHour),分鐘:parseInt(_startMinutes),日期:parseInt(_day),month:parseInt(_month),year:parseInt(_year)}) .toDate(); –

+0

我只是不知道如何從jquery timepicker輸入值爲_startHour和_startMinutes提供值。 –

+0

嘗試用'H:i'來更改'hh:mm:ss',我試過了,它可以工作,'$('#startTime')。例如,val()'返回'20:00',所以我加了':00'幾秒鐘,然後將它添加到'2017-03-31T'中,以便在fullCalendar中使用正確的日期格式 –