2012-03-28 2 views
-1

Я использовал плагин fullcalendar успешно в течение нескольких месяцев и внезапно столкнулся с ошибкой. Он не будет отображаться на событии 31 марта 2012 года. Такое поведение не происходит на нашем сервере тестового сайта, на котором запущен php v5.3.8, но на нашем сервере в реальном времени. На этом сервере работает php v5.3.6.Fullcalendar не показывает 31 марта события

Может кто-то пролить свет на эту ситуацию. Возможно, это связано с летней экономией? Как это исправить?

Спасибо за любую помощь.

КОД:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#calendar').fullCalendar({ 
     theme: "true", 
     aspectRatio: 1.8, 
     weekMode: 'liquid', 
     header: { 
      left: "", 
      center: "prev title next", 
      right: "" 
     }, 
     buttonIcons:{ 
      prev: "triangle-1-w", 
      next: "triangle-1-e" 
     }, 
     eventSources: [ 
      { 
       url: 'VS_race_events.php', // Event Source One // 
       type: 'POST', 
       error: function() { 
        alert('there was an error while fetching events!'); 
       }, 
       color: '#006600', 
       textColor: 'white' 
      }, 
      { 
       url: 'VS_work_events.php', // Event Source Two // 
       type: 'POST', 
       error: function() { 
        alert('there was an error while fetching events!'); 
       }, 
       borderColor: '#006600', 
       color: 'beige', 
       textColor: '#333333' 
      } 
     ], 
     eventClick: function(calEvent, jsEvent, view) { 
      $("#dialog_frame").css("visibility", "visible"); 
      $("#dialog_frame").draggable("enable"); 
      $(".dialog_content").html(calEvent.description); 
      $(".dialog_title").html(calEvent.title);   
     } 
    }) 
}); 
</script> 

Вот VS_work_event файл:

<?php 
require_once('Connections/HDAdavePDO.php'); 

if (isset($_POST['start'])) { 
    $unix_start = $_POST['start']; 
    $date_start = strftime("%Y-%m-%d",$unix_start); 

} 
if (isset($_POST['end'])) { 
    $unix_end = $_POST['end']; 
    $date_end = strftime("%Y-%m-%d",$unix_end); 
} 

$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$stmt2 = $pdo->prepare('SELECT * FROM vs_events WHERE event_date >= ? AND event_date < ?'); 
$stmt2->bindParam(1, $date_start); 
$stmt2->bindParam(2, $date_end); 
$stmt2->execute(); 
$stmt2->setFetchMode(PDO::FETCH_ASSOC); 
$row_Calendar = $stmt2->fetchAll(); 

foreach ($row_Calendar as $row){ 
    if ($row['event_type'] == 13 && $row['active'] == 1){ 
    $display_date = substr($row['event_date'],0,10); 
    $eventsArray['id'] = $row['event_id']; 
    $eventsArray['start'] = $display_date; 
    $eventsArray['title'] = $row['event_subject']; 
    $eventsArray['description'] = $row['event_text']; 
    $eventsArray['type'] = $row['event_type']; 
    $events[] = $eventsArray; 
} 
} 
echo json_encode($events); 
$pdo = null; 
?> 
+0

Вы должны предоставить способ больше информации, код, в формате JSON, который Наполнение Источник FullCalendar и т. Д. – Brandon

+0

Вот ссылка на страницу календаря, которая не отображает 31 марта события. http://vinery.com.previewdns.com/VRcalendar.php – user1028866

+0

Брэндон - Я добавил свои сценарии и исходные файлы данных к моему вопросу. – user1028866

ответ

1

Глядя на ответ JSON обоих ваших источников событий, не событие, которое я могу видеть, что происходит в марте 31-го.

Возможно, ваша проблема связана с запросами на сервере или событиями, а не с FullCalendar.

+0

Событие находится в базе данных, но не отображается в календаре, если я не переношу дату события до 30 марта или 1 апреля. – user1028866

+0

Я попытался повторить ответ JSON на экран и обнаружил, что события 31 марта не являются включается, когда используется дата окончания 31 марта. Однако, когда используется дата окончания 1 апреля, 31-й даты, датированные событиями, включаются в ответ JSON. Это не происходит с другими месяцами. 31 мая события отображаются должным образом, как и события 31 марта 2011 года. Я попытался исследовать это перед публикацией в качестве вопроса. – user1028866

+0

Брэндон. Теперь я вижу, что проблема связана с файлом, вызывающим вызов JSON. База данных не возвращает событие 31 марта, когда конечная дата запроса - 31 марта. Я не знаю, почему это происходит на одном сервере php, а не в другом. Я изучаю это сейчас. – user1028866

2
$stmt2 = $pdo->prepare('SELECT * FROM vs_events WHERE event_date >= ? AND event_date < ?'); 

так что если $ date_end является 31 марта, 31 марта события не будут возвращены этим запросом, как

31st March < 31st March is **false** 
Смежные вопросы