FullCalendar数据传递语法

时间:2017-03-20 10:41:48

标签: javascript php codeigniter-3

我正在根据与数据库比较的当前时间显示事件。 例如。 当前时间:16:00 从时间:16:00 到时间:17:00

如果当前时间存在,那么它将在日历上显示数据。 我遇到了问题。如果我的代码进入else部分,如果当前时间不匹配则会产生错误的数组。

$json = array();
        $start=$_REQUEST['start'];
        $end=$_REQUEST['end'];
        if($start != '' && $end != '')
        {
            $where="(from_date BETWEEN '$start' and '$end') or (to_date BETWEEN '$start' and '$end')";
            $finalArray=[];
            //$json=$this->Rates_model->getAnyData($where,'','','','','');
            $json=$this->Rates_model->getAnyData();
            if(!empty($json))
            {

                foreach ($json as $key => $js) {

                    $finalArray[$key]['id']= $js->id;
                    $from= array('time'=>gmdate("h:i", strtotime($js->from_time)));
                    $to= array('time'=>gmdate("h:i", strtotime($js->to_time)));


                    $date1 = date("h:i a");
                    $date2 = date('h:i a', strtotime($js->from_time));
                    $date3 = date('h:i a', strtotime($js->to_time));
                    if ($date1 > $date2 && $date1 < $date3)
                    {
                        $finalArray[$key]['start']= date('Y-d-m',strtotime($js->from_date))."T".$js->from_time;
                        $finalArray[$key]['end']=date('Y-d-m',strtotime($js->to_date))."T".$js->to_time;
                        if(!empty($js->rate_per_hour) && !empty($js->rate_per_mile))
                        {
                            $fullTitle="Hour: ".$js->rate_per_hour.",Mile: ".$js->rate_per_mile;
                        }
                        elseif(!empty($js->rate_per_hour) && empty($js->rate_per_mile)){
                            $fullTitle="Hour: ".$js->rate_per_hour;
                        }
                        elseif(empty($js->rate_per_hour) && !empty($js->rate_per_mile)){
                           $fullTitle="Mile: ".$js->rate_per_mile;
                        }
                        $finalArray[$key]['title']=$fullTitle;
                    }
                    else
                    {
                         echo "No Event has been Set";
                     }
 }

                echo json_encode($finalArray);

如果时间存在,我的JSON响应:

[{"id":"1","start":"2017-03-11T13:00:00","end":"2017-03-11T17:00:00","title":"Hour: 0.99,Mile: 0.99"},{"id":"14","start":"2017-03-11T15:00:00","end":"2017-03-11T17:30:00","title":"Hour: 11.00,Mile: 11.00"},{"id":"15","start":"2017-03-12T15:25:00","end":"-0001-30-11T17:30:00","title":"Hour: 22.00,Mile: 22.00"}]

如果当前时间不匹配则     没有设置事件

[{"id":"1","start":"2017-03-11T13:00:00","end":"2017-03-11T17:00:00","title":"Hour: 0.99,Mile: 0.99"},{"id":"14"},{"id":"15","start":"2017-03-12T15:25:00","end":"-0001-30-11T17:30:00","title":"Hour: 22.00,Mile: 22.00"}]

我正在使用FullCalendar

1 个答案:

答案 0 :(得分:0)

问题是,您的代码会在检查事件是否在特定小时内时,将事件的 id 添加到 finalArray 。放置

  

$ finalArray [$ key] ['id'] = $ js-&gt; id;

里面的

  

if($ date1&gt; $ date2&amp;&amp; $ date1&lt; $ date3){

声明,它应该工作正常。希望这会有所帮助。