时刻、日期和本地日期时间

moments, dates and datetime-local

我正在尝试覆盖 fullCalendar ClickEvent 并使用开始和结束日期 moment 来填充 <input type="datetime-local"

$('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: false,
        droppable: true,
        //edit existing
        eventClick: function(calEvent, jsEvent, view) {
             var startDateString = calEvent.start.toDate().toISOString();
             $('#startDate').val(startDateString.replace('Z', '') );

我在对[下面的片段]在设置值时期望的内容进行了广泛的研究后实施了上述内容( and here

<input type="datetime-local" name="startDate" id="startDate" class="ui-widget-content" style="width:100%">

然而,由于时区和我使用的是 toDate()(参见 ),上面的时间总是错误的。 示例:我单击一个事件,该事件显示它在 9:30 am 开始,但输入框设置为 2:30 pm。我怎样才能形成我的日期,以便当它们出现在我的输入框中时时间相同?

仅供参考:

我试过只使用 calEvent.start.format() 但是我的输入不会接受它作为有效值(控件中没有设置任何内容,与下面显示结束日期的图像中看到的相同)。我相信这是因为不是 "T" 分隔日期和时间,而是 "A" 或 "P" 分隔日期和时间。

我试过使用 datetime(而不是 datetime-local),但据我所知这只是一个文本框。 datetime-local 有箭头和分隔符。下图显示了差异,开始日期为 datetime,结束日期为 datetime-local

显示我在何处生成的校准事件:

    var technicianSchedule = {technician:technicians[Math.floor((Math.random() * technicians.length))] , start:datetimeStart , end:datetimeEnd, title: "Title "+i,description: "Desc "+i};
    technicianSchedules.push(technicianSchedule);

我需要调用 .toLocaleString()日期对象来删除时区内容

    var technicianSchedule = {technician:technicians[Math.floor((Math.random() * technicians.length))] , start:datetimeStart.toLocaleString() , end:datetimeEnd.toLocaleString(), title: "Title "+i,description: "Desc "+i};
    technicianSchedules.push(technicianSchedule);