我正在根据与数据库比较的当前时间显示事件。 例如。 当前时间: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。
答案 0 :(得分:0)
问题是,您的代码会在检查事件是否在特定小时内时,将事件的 id 添加到 finalArray 。放置
里面的$ finalArray [$ key] ['id'] = $ js-&gt; id;
if($ date1&gt; $ date2&amp;&amp; $ date1&lt; $ date3){
声明,它应该工作正常。希望这会有所帮助。