首页 > 解决方案 > 如何使用 php sql 查询让事件显示在日历中?

问题描述

编辑*我发现了问题。日期正在转换为此格式:2018 年 3 月 1 日上午 12:00我在下面发布了我的解决方案。

我的查询返回了适当的结果,但是日历上没有显示任何事件。

如果存在我不知道的格式问题,以下是 SQL 中数据的样子:

名称:测试

开始时间: 2009-09-23 00:00:00.000

结束: 2010-04-05 00:00:00.000

PHP:

$query = mssql_query("select [NAME], [Start], [End] from [database] where [Name] = 'Test'");

       $result = array();

        if (mssql_num_rows($query)) {

            while ($row = mssql_fetch_assoc($query)) {

                $result[] = $row;
            }
        } 

        $data = array();

        foreach($result as $i => $item)
        {
         $data[] = array(
          'title'   => $item["Name"],
          'start'   => $item["Start"],
          'end'   => $item["End"]
         );
        }

JSON/JS:

<script type="text/javascript">
 $(document).ready(function() {
 var calendar = $('#calendar').fullCalendar({
 editable:true,
 header:{
 left: 'prev,next today',
  center: 'title',
  right: 'month,agendaWeek,agendaDay,listMonth'
},
events: <?php echo json_encode($data); ?> ,
selectable:true,
selectHelper:true,

})

});
</script>

标签: javascriptphpjsonfullcalendar

解决方案


For some reason my date format was being converted, so I just converted it in the php loop:

<?php
foreach($result as $i => $item)
    {
     $data[] = array(
      'title'   => $item["Name"],
      'start'   => date("Y-m-d", strtotime($item["Start"]));
      'end'   => date("Y-m-d", strtotime($item["End"]));
     );
    }
?>

推荐阅读