Как установить время начала и время окончания в fullcalendar из входных текстовых полей, используя jquery timepicker

В моем модальном у меня есть два ввода текста startTime и endTime, используя jquery timepicker

введите описание изображения здесь

Я могу прикрепить событие к правильной дате, выбранной из календаря jquery ui, но как я могу получить значения из времени начала и окончания, а затем установить эти значения в случае полного календаря?

введите описание изображения здесь

Я знаю, как получить значения в этих входных данных, например, $('#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)

Спасибо!

2 ответа

Решение

В конце концов я нашел решение, используя функцию создания даты в 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 из начального значения Hour из jpery timepicker элемента ввода, поэтому я вычитаю 8.

Код для полного календаря

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

Попробуйте отформатировать дату следующим образом 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 с начала и конца часа, потому что все, что вам нужно, это форматированный текст

Другие вопросы по тегам