Fullcalendar选择错误的结束日期

时间:2018-03-06 08:15:52

标签: javascript jquery asp.net-mvc date fullcalendar

我正在使用可选功能,当用户选择日期时,它将以模态显示开始和结束日期。但显示的结束日期是实际选定日期的额外一天。例如,我点击3月1日,结束日期将显示2月3日。这是我的代码:

select: function (start, end, allDay, jsEvent, view) {
          var view = $('#calendar').fullCalendar('getView');
          $("#EndDate").val('');
          alert(end);

          if (view.name === "month") {
            $('#DateForm').modal('show');
            $("#EndDate").val(start.format('ddd, DD-MMM-YYYY, hh:mm a'));
          } else {
          }
        }

3 个答案:

答案 0 :(得分:1)

您所看到的是正确的,记录在案的行为。 " end"的文档事件的财产状态:

  

活动结束的独占日期/时间。 [...] 事件结束后立即的那一刻。   例如,如果某个活动的最后一整天是星期四,那么   活动的独家结束时间为星期五的00:00:00

有关详情,请参阅https://fullcalendar.io/docs/event-object

P.S。上面代码中的行var view = $('#calendar').fullCalendar('getView');是多余的 - 您已经可以通过回调中的同名参数访问该视图。您可以删除此行,代码将继续有效。

答案 1 :(得分:1)

您可以通过这种方式

      select: function (start, end, allDay, jsEvent, view) {
      var endDate = new Date(end);
      beforeDay = new Date(endDate.getFullYear(),endDate.getMonth(),endDate.getDate() - 1);
      $("#EndDate").val(beforeDay.format('ddd, DD-MMM-YYYY, hh:mm a'));
     }     

答案 2 :(得分:1)

我这样解决了

select: function (info) {
            
  end_date = new Date(info.end);
  $('#form-add-shift input[name="end_date"]').val(end_date.toISOString().slice(0, 10));
},