FullCalendar не отображает правильное время

0

Я просмотрел все примеры, и я не могу понять, почему FullCalendar не покажет подходящее время для моих событий. Для каждого события он просто отображает 12a вместо фактического времени. Может кто-то, пожалуйста, взгляните на мой код ниже и дайте мне знать, что я делаю неправильно.

JavaScript

  jQuery('#calendar').fullCalendar({
        allDayDefault: false,           
           disableDragging: true,
            eventSources: [{
             events: function(start, end, callback) {
                     var month = end.getMonth();
                     month = ('0' +month).slice(-2)
                     if(month == '0')
                     {
                     var year = start.getFullYear(); month = '12';
                     }
                     else
                     var year = end.getFullYear();

                    var new_url = "<?php echo get_bloginfo('siteurl').'/json-events.php?month='; ?>" + month + "&year="+year;

                    if( new_url != current_url ){

                        jQuery.ajax({
                            url: new_url,
                            dataType: 'json',
                            type: 'POST',
                            success: function( response ) {

                                current_url = new_url;
                                user_events = response;

                                callback(response);

                            }
                        });
                   }else{
                       callback(user_events);
                   }
            }

            }],
            theme: true,
            header: {
                left: 'prev,next',
                center: 'title',
                right: '' 
            },
        editable: true,
         eventRender: function(event, element) {

    element.qtip({
        content: event.description
    });
},

,

PHP

require_once("includes/classService.php");
$classService = new MBClassService();

require_once("includes/clientService.php");
$classClient = new MBClientService(); 

session_start();    

function cmp($a, $b) {
        $expA = explode('T',$a->StartDateTime);
        $startTimesA  = strtotime($expA[1]).'  ';
        $expB = explode('T',$b->StartDateTime);
        $startTimesB  = strtotime($expB[1]);  
    return (strcmp ($startTimesA,$startTimesB)); 
}

$time = '';

$currentYr = $_GET['year'];

$currentDy = '01';

$currentMonth = $_GET['month'];

$k = 0;  

    $startDate = $currentYr.'-'.$currentMonth.'-'.$currentDy;
    $lastDay = date('t',strtotime($startDate));
    $endofDate =  $currentYr.'-'.$currentMonth.'-'.$lastDay;
    $recordOfClientAddClass = $classClient->GetClientSchedule($_SESSION['ClientId'],$startDate,$endofDate);
    $bookClassArray = array();

for($k = 0; $k < count($recordOfClientAddClass); $k++) {
    $bookClassArray[] = $recordOfClientAddClass[$k]->ClassID;
}

for( $j = 1; $j <= $lastDay; $j++ ) { 
    $days = sprintf("%02s", $j);
    $months = sprintf("%02s", $currentMonth);
    $currentYr = date('Y');
    $start =  $currentYr.'-'.$months.'-'.$days.' 00:00:00';
    $ends =  $currentYr.'-'.$months.'-'.$days.' 23:59:59';
    $classesList = $classService->GetClasses(array(), array(), array(), array(), $ends, $ends);
    //echo "<pre>"; print_r($classesList);

    if(!empty($classesList[0])) {

        uasort($classesList, 'cmp');

        $classesList = array_values($classesList);

        for($k = 0; $k < count($classesList); $k++ ) {
            $exp = explode('T',$classesList[$k]->StartDateTime);
            $startDateOfClass = $exp[0];
            $startTime  = $exp[1];
            $reformatted_stime = date('g:i a',strtotime($startTime));
            $endTime = end(explode('T',$classesList[$k]->EndDateTime));
            $t1 = strtotime($startTime);
            $t2 = strtotime($endTime);
            $delta_T = ($t2 - $t1);
            $hours = round((($delta_T % 604800) % 86400) / 3600, 2); 
            $minutes = round(((($delta_T % 604800) % 86400) % 3600) / 60, 2); 
            $seconds = round((((($delta_T % 604800) % 86400) % 3600) % 60), 2);
            if($hours)
                $time .= $hours ." hour "  ;
            if($minutes)
                $time .= $minutes ." Minutes " ;
            if($seconds)
                $time .= $seconds ." Second "  ; 
        $reformatted_etime = date('g:i a',strtotime($endTime)); 

        if(time() < strtotime($startDateOfClass) && !in_array($classesList[$k]->ID,$bookClassArray))
            $url = $classesList[$k]->ID."&".$startDateOfClass."";
        else
            $url = "";

        if(in_array($classesList[$k]->ID,$bookClassArray))
            $register = "Already Registered!";
        else
            $register = "";

        $description = '';
        if($register != "")
            $description  .= '<strong style="color:#64C063;">'.$register.'</strong><br>';
        $description  .= '<strong>Class Name:</strong> '.$classesList[$k]->ClassDescription->Name.'<br> <strong>Teacher:</strong> '.$classesList[$k]->Staff->Name.'<br> <strong>Duration:</strong> '.$time.

              '<br> <strong>Time:</strong> '.$reformatted_stime.' To ' .$reformatted_etime."";

        if($url) {
            $jsonFirstArry[] = array(
                'title' => $classesList[$k]->ClassDescription->Name,
                'start' => "$currentYr-$months-$days",
                'url' => $url,
                'className' => 'clickTip',
                'description' => "$description"
            );
        } else {
            $jsonFirstArry[] = array(
                'title' => $classesList[$k]->ClassDescription->Name,
                'start' => "$currentYr-$months-$days",
                'className' => 'clickTip',
                'description' => "$description"
            );
        }

        $time = '';

        }
    }
}
echo  json_encode($jsonFirstArry); 
?>

Благодарю!

Теги:
fullcalendar

1 ответ

0

Это формат времени по умолчанию для FullCalendar. Вы захотите посмотреть документацию timeFormat для получения подробных сведений о том, как реализовать изменения, и документацию formatDate для определения того, как работают временные форматы.

Как пример, так и быстрое решение вашей конкретной проблемы, если бы вы указали...

timeFormat: 'h:mmtt'

... в вашем календарном объекте, на том же уровне, где вы указываете источники событий и тему, которые должны отображать полные "am" или "pm". В соответствии с этим форматированием в 19:00 будет отображаться "7:00 pm".

  • 0
    Я понимаю формат, но не могу найти, какой параметр я не устанавливаю, чтобы изменить время по умолчанию.
  • 0
    Ах, прости. Отвечая на неправильный вопрос. Вы проверили вывод JSON вашего PHP? Кажется более правдоподобным, что ваш сервис производит неправильные времена, чем календарь их составляет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню