"dayGridMonth" Ср 15 января 2020 года 15:46:23 GMT-0600 (центральное стандартное время) пт 07 февраля 2020 года 10:15:40 GMT-0600 (центральное стандартное время)
Привет
Я использую последние версии jquery, FullCalendar, moment. js и tempusdominus, доступные через npm / yarn.
Я смотрю на представление "dayGridMonth" на февраль 2020 года. Существует многодневное событие, которое начинается до просмотра границ. Если я нажму на это событие, событие eventClick
сработает, как я ожидал. event info
, переданный в событие, показывает
info.event.start: Wed Jan 15 2020 15:46:23 GMT-0600 (Central Standard Time)
info.event.end: Fri Feb 07 2020 10:15:40 GMT-0600 (Central Standard Time)
. Я преобразую их в moments
и передаю их «всплывающему» виджету на основе popper.js
для отображения сведений о событии. Во всплывающем окне я делаю некоторую проверку даты, а затем создаю виджеты для выбора даты / времени в tempusdominus.
////////////////////////////////////////////////////////////////
//
let start = moment(options.start);
let end = moment(options.end);
////////////////////////////////////////////////////////////////
// START DATETIME
$("<div>").attr("id", "formRowStart")
.addClass("form-group row m-1")
.appendTo("#popupReservationBody");
$("<label>").attr("for", "popupReservationStart")
.text("Start")
.addClass("col-form-label font-weight-bold mt-0 pt-0")
.appendTo("#formRowStart");
$("<input>").attr("id", "popupReservationStart")
.attr("placeholder", "YYYY/MM/DD HH:mm")
.attr("name", "start")
.attr("type", "text")
.attr("required", true)
.attr("readonly", true)
.addClass("form-control-plaintext form-control-sm")
.addClass("datetimepicker-input")
.attr("data-toggle", "datetimepicker")
.attr("data-target", "#popupReservationStart")
.appendTo("#formRowStart");
$("#popupReservationStart").datetimepicker({
sideBySide: true,
stepping: 15,
format: "Y-MM-DD HH:mm",
defaultDate: moment(start)
});
////////////////////////////////////////////////////////////////
// END DATETIME
$("<div>").attr("id", "formRowEnd")
.addClass("form-group row m-1")
.appendTo("#popupReservationBody");
$("<label>").attr("for", "popupReservationEnd")
.text("End")
.addClass("col-form-label font-weight-bold mt-0 pt-0")
.appendTo("#formRowEnd");
$("<input>").attr("id", "popupReservationEnd")
.attr("placeholder", "YYYY/MM/DD HH:mm")
.attr("name", "end")
.attr("type", "text")
.attr("required", true)
.attr("readonly", true)
.addClass("form-control-plaintext form-control-sm")
.addClass("datetimepicker-input")
.attr("data-toggle", "datetimepicker")
.attr("data-target", "#popupReservationEnd")
.appendTo("#formRowEnd");
$("#popupReservationEnd").datetimepicker({
sideBySide: true,
stepping: 15,
format: "Y-MM-DD HH:mm",
defaultDate: moment(end)
});
Моя проблема заключается в том, что виджет даты "окончания" отображает только строку placeholder
. Значение end
в то время, когда оно установлено как defaultDate
, насколько я знаю, является действительным moment
. Виджет «Пуск» отображается просто отлично.
Я поместил try catch
вокруг определения виджета popupReservationEnd
, и ничего не происходит. Чего мне не хватает?
Редактировать
Если я превращу «конец» moment
в строку, то, похоже, это сработает: defaultDate: moment(end).format("YYYY-MM-DD HH:mm:ss")
. Это не ответ, поскольку момент «запуска» отображается просто как есть.