完整日历事件数据

时间:2011-07-15 17:42:51

标签: php mysql events calendar fullcalendar

我正在考虑将FullCalendar用作网站上的活动日历。

我的问题:是否有使用PHP / MySQL存储访问事件数据的文档或示例?

谢谢!

2 个答案:

答案 0 :(得分:2)

我也这样做,我希望有一个更完整的PHP / MySQL方面的例子,因为我通常是一个ASP.NET / MS-SQL人,所以我不得不花更多的时间比我想要的一些基本的东西。这是我所做的概述。这很基本。

首先,我在MySQL中创建了一个如下所示的表:

CREATE TABLE `events` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  `start_date` datetime NOT NULL,
  `end_date` datetime NOT NULL,
  `event_url` varchar(200) DEFAULT NULL,
  `all_day` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

然后,我编写了一个名为json-events.php的PHP程序,我将其用作日历的事件源。在此程序中,您首先需要获取当前显示的日历的开始日期和结束日期:

$start_date = $_GET['start'];
$end_date = $_GET['end'];

然后,您需要运行SQL查询以获取该窗口中的事件:

$sqlcommand = "select * from events 
where start_date between from_unixtime($start_date) and from_unixtime($end_date)
or end_date between from_unixtime($start_date) and from_unixtime($end_date)
order by start_date";

然后,将结果放在一起:

$event_array = array();
while ($record = mysql_fetch_array($result)) {
    $event_array[] = array(
        'id' => $record['id'],
        'title' => $record['title'],
        'start' => $record['start_date'],
        'end' => $record['end_date'],
        'url' => $record['event_url'],
        'allDay' => $record['all_day']
    );
}

最后,JSON对其进行编码并回显它:

echo json_encode($event_array);

这似乎有效。我对MySQL和PHP处理日期/时间字段的方式不太熟悉,所以我不确定我是否以最有效的方式执行此操作。

答案 1 :(得分:1)

您需要实现一个PHP页面,该页面从MySQL数据库中检索事件数据并以JSON格式返回。然后,您可以将该网址用作日历的JSON feed source

the FullCalendar GitHub repository上有示例代码。

还有一个显示how to listen to events if something changes in the calendar的演示。