在完整的日历JS中,我想显示事件结束日期和事件标题,但是,事件结束日期以毫秒为单位显示(我认为)

问题描述 投票:0回答:1

我有下面的日历ajax代码:

$.ajax({
   url: 'display_event.php',  
   dataType: 'json',
   success: function (response) {
        
   var result=response.data;
   $.each(result, function (i, item) {
       events.push({
           event_id: result[i].event_id,
           title: result[i].title,
           start: result[i].start,
           end: result[i].end,
           //color: result[i].color,
           url: result[i].url
       });  
   })
   var calendar = $('#calendar').fullCalendar({
       defaultView: 'month',
        timeZone: 'local',
       editable: true,
       selectable: true,
       selectHelper: false,
       select: function(start, end) {
               //alert(start);
               //alert(end);
               $('#event_start_date').val(moment(start).format('YYYY-MM-DD'));
               $('#event_end_date').val(moment(end).format('YYYY-MM-DD'));
               $('#event_entry_modal').modal('show');
           },
          
       events: events,
       eventRender: function(event, element, view) { 
           element.find('.fc-title').append(" <b>" + event.end +"</b>");
           element.bind('click', function() {
           
                   alert(event.end);
               });
       }
       }); //end fullCalendar block 
     },//end success block
     error: function (xhr, status) {
     alert(response.msg);
     }
   });

我已在事件标题中附加“event.end”,但 event.end 以毫秒为单位显示。我希望它根据我的数据库和 JSON 数据以 YYYY-MM-DD 显示。我已检查 JSON 数据是否传递 YYYY-MM-DD (2023-08-13)。

我的输出显示如下。我希望该活动显示为“GovernmentHoliday 2023-08-13”。

enter image description here

警报似乎显示正确

element.bind('click', function() {
           
                   alert(event.end);
               });
javascript php mysql json fullcalendar
1个回答
0
投票

当您连接 Moment 对象的值时,它将返回以毫秒为单位的 unix 时间戳。当您将 Moment 对象传递给警报时,会调用其

toString()
方法。

请注意,对于

event.end
null
具有相同值的事件,
start
将是
end
(例如,单日全天事件)。在尝试使用它之前,您应该检查
event.end
是否不为空。

eventRender: function (event, element) {
    if (event.end !== null) {
        element.find('.fc-title').append(" <b>" + event.end.format('YYYY-MM-DD') + "</b>");
    }
}

您似乎使用的是相当旧版本的 FullCalendar。您应该考虑切换到普通 JS 版本,该版本删除了 Moment 和 jQuery 依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.