У меня огромная база данных и множество событий. Каждый раз, когда я go на главной странице календаря (ежемесячный просмотр) загружаются все существующие события в базе данных, несмотря на то, что я смотрю только текущий месяц. На данный момент моя страница html имеет размер более 3 МБ и имеет тенденцию замедлять работу вкладки браузера.
Чтобы решить эту проблему, я начал изменять код для извлечения только событий текущего месяца как json. К сожалению, даты начала и окончания диапазона дат не работают - страница все еще извлекает все события из базы данных. Я уже провел несколько часов исследований и много настроек.
Я использую FullCalendar V3.10
Пока мне удалось получить мои события FullCalendar.io - у меня есть два источника событий - поэтому я использовал:
eventSources: [
{
url: 'include/load-calendar-event.php', // use the `url` property
color: '#008000',
},
{
url: 'include/load-calendar-event-retour.php', // use the `url` property
color: '#008000',
},
// any other sources...
],
Соответствующие два файла для извлечения событий почти идентичны - так что одного должно быть достаточно:
load-calendar-event. php
require_once('bdd.php');
$sql = "SELECT * FROM messages"; // this selects all rows
$req = $bdd->prepare($sql);
$req->execute();
$events = $req->fetchAll();
$data = array();
foreach($events as $event) {
$start = explode(" ", $event['start']);
$end = explode(" ", $event['end']);
if($start[1] == '00:00:00'){
$start = $start[0];
}else{
$start = $event['start'];
}
if($end[1] == '00:00:00'){
$end = $end[0];
}else{
$end = $event['end'];
}
$data[] = array(
'id'=> $event['id'],
'title'=> $event['title'],
'start'=> $start,
'end'=> $end,
'color'=> $event['color']
);
}
echo json_encode($data);
При вызове страницы календаря браузеры выполняют следующие вызовы - обратите внимание на дату (2020-01-01 - 2020-02 -01) и формат данных:
...include/load-calendar-event.php?start=2020-01-01&end=2020-02-01&_=1578601056565
и
...include/load-calendar-event-retour.php?start=2020-01-01&end=2020-02-01&_=1578601056566
снимок экрана звонка в firebug
Формат даты событий сохранено в базе данных в следующем формате (ГГГГ-ММ-ДД ЧЧ: мм: сс):
2020-01-11 10:00:00
Вопрос:
Любая идея, как получить события только для текущего месяца?