如何使用jquery timepicker从输入文本框设置fullcalendar中的开始时间和结束时间

如何使用jquery timepicker从输入文本框设置fullcalendar中的开始时间和结束时间,jquery,fullcalendar,timepicker,jquery-ui-timepicker,Jquery,Fullcalendar,Timepicker,Jquery Ui Timepicker,在我的模式中,我使用jquery时间选择器有两个输入文本框startTime和endTime 我能够将事件粘贴在从jquery ui日历中选择的正确日期中,但是如何从开始时间和结束时间获取值,然后在fullcalendar事件中设置这些值 我知道如何获取这些输入中的值,例如$(“#startTime”).val(),但将其堆叠在其中以将其设置为完整日历的开始时间 下面是我的代码: function setTimeValues(x,y) { var startHour = pars

在我的模式中,我使用jquery时间选择器有两个输入文本框startTime和endTime

我能够将事件粘贴在从jquery ui日历中选择的正确日期中,但是如何从开始时间和结束时间获取值,然后在fullcalendar事件中设置这些值

我知道如何获取这些输入中的值,例如$(“#startTime”).val(),但将其堆叠在其中以将其设置为完整日历的开始时间

下面是我的代码:

  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)

谢谢

尝试将日期设置为以下格式
yyyy-mm-dd
然后将时间选择器设置为以下格式:

$(document).ready(function(){
    //init
    $('#startTime').timepicker({ timeFormat: 'H:i' });
    $('#endTime').timepicker({ timeFormat: 'H:i' });
});
然后在
开始
结束
变量处使用:

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

不要忘记从开始和结束时间中删除
parseInt
,因为您只需要格式化的文本我终于找到了一个解决方案,使用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)
然后,使用moment 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总是从输入元素jquery timepicker的小时初始值中加8,所以我减去了8

完整日历的代码

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

我不确定jquery timepicker是如何返回值的,但是parseInt可能会破坏数据。我确实这样做了,但事件不会在完整日历中呈现。我同意@Daffy,在开始、结束变量中,您应该使用日期,例如
2010-01-07
@Salahedinelahniche我上面已经有一个jquery datepicker,这就是为什么我没有在开始时间和结束时间文本框的输入中使用它。嗨,它不工作。这段代码可以工作,但只有当我解析了小时和分钟(硬编码)而不是来自输入x=moment(x)时,才可以工作。set({hour:parseInt(_startHour),minute:parseInt(_startMinutes),date:parseInt(_day),month:parseInt(_month),year:parseInt(_year)})。toDate();我只是不知道如何从jquery timepicker输入值中为_startHour和_startMinutes提供值。请尝试使用
H:I
更改
hh:mm:ss
,我已经尝试过了,它可以工作,
$(“#startTime”).val()
返回
20:00
例如,因此我将其添加到
:00
中几秒钟,然后将其添加到
2017-03-31T
中,以便在fullCalendar中使用正确的日期格式