我使用fullcalendar作为预订日程。我使用重复发生的事件来显示医生的正常可用性。
虽然医生可能在某个特定日期可能无法使用,但确实如此:
示例:史密斯博士每个星期一从1000到1800工作,但只有下一个星期一将无法使用。
fullcalendar中的重复事件允许显示特定日期范围内的事件。 但是如何才能做到相反的事情(除特定日期范围外总是显示)?
你们有没有这个问题吗?
感谢您的帮助!
答案 0 :(得分:0)
我使用@ 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', 标题:' $ cognome $ nome - Presente', 开始:' $ ora01', 结束:' $ ora02', 道:[$ key], 颜色:' $ rgba', borderColor:' $ colore' $ eccezioni_non_disponibile },&#34 ;; }
答案 1 :(得分:0)
我已经问过Arshaw(fullcalendar'作者)为什么JSfiddle工作而不是在我的网站上,看起来他不知道任何RANGES功能。