【问题标题】:Fullcalendar: on recurring events I don't want to display certain datesFullcalendar:在重复发生的事件中,我不想显示某些日期
【发布时间】:2016-06-10 07:18:13
【问题描述】:
我正在使用全日历作为预订议程。我使用重复事件来显示医生的定期可用性。
虽然医生可能只在某个特定日期有空:
示例:Smith 博士每周一从 1000 到 1800 工作,但只有下周一不能上班。
完整日历中的重复事件允许显示特定日期范围内的事件。
但如何反其道而行之(除特定日期范围外,始终显示)?
你们中有人有这个问题吗?
感谢您的帮助!
【问题讨论】:
标签:
fullcalendar
recurring-events
【解决方案1】:
我已经使用@Ryan89 JSFiddle 管理了一个函数。
//$val is doctor ID value
//adding not availabilty to repeating events
$adesso=date('Y-m-d H:i:s');
$sql_ecc="SELECT * FROM lpap_eccezioni_oneoff WHERE IDmedico=$val AND datafine>'$adesso' AND stato='Non disponibile' ORDER BY datainizio";
$res_ecc=$wpdb->get_results($sql_ecc);
$qta=count($res_ecc);
if ($qta>0){
$eccezioni_non_disponibile=",ranges: [{start: moment().startOf('year'),";
foreach ($res_ecc as $val_ecc){
$stato=$val_ecc->stato;
if ($stato=="Disponibile"){$dispchecked="checked";$nondispchecked="";}
if ($stato=="Non disponibile"){$dispchecked="";$nondispchecked="checked";}
$datainizioecc=$val_ecc->datainizio;
$datafineecc=$val_ecc->datafine;
$IDeccezioni=$val_ecc->IDeccezioni;
$eccezioni_non_disponibile.="
end: moment('$datainizioecc','YYYY-MM-DD h:mm:ss'),
},{
start: moment('$datafineecc','YYYY-MM-DD h:mm:ss'),";
}
$eccezioni_non_disponibile.="end: moment('$datafineecc','YYYY-MM-DD h:mm:ss').endOf('year'),
}]";
} else {$eccezioni_non_disponibile="";}
为了得到这个代码:
ranges: [{
start: moment().startOf('year'),
end: moment('2016-06-13 10:00:00','YYYY-MM-DD h:mm:ss'),
},{
start: moment('2016-06-13 18:00:00','YYYY-MM-DD h:mm:ss'),
end: moment('2016-06-20 10:00:00','YYYY-MM-DD h:mm:ss'),
},
{
start: moment('2016-06-20 18:00:00','YYYY-MM-DD h:mm:ss'),
end: moment('2016-06-20 18:00:00','YYYY-MM-DD h:mm:ss').endOf('year'),
},]
然后我在重复事件中添加了 $eccezioni_non_disponibile 变量。
$show_time.="{
id:'Disp_$val',resourceId:'$gruppo',
title: '$cognome $nome - Presente',
开始:'$ora01',
结束:'$ora02',
道:[$key],
颜色:'$rgba',
边框颜色:'$colore'
$eccezioni_non_disponibile
},";
}