0

我正在使用 fullcalendar 作为预订议程。我使用重复事件来显示医生的定期可用性。

尽管医生可能仅在特定日期不可用,但会发生这种情况:

示例:Smith 博士每周一从 1000 到 1800 工作,但只有下周一不能上班。

全日历中的重复事件允许显示特定日期范围内的事件。但是如何做到相反(除了在特定日期范围内总是显示)?

你们中有人有这个问题吗?

谢谢你的帮助!

4

2 回答 2

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', title: '$cognome $nome - Presente', start: '$ora01', end: '$ora02', dow: [$键],颜色:'$rgba',边框颜色:'$colore' $eccezioni_non_disponibile },"; }

于 2016-06-12T09:53:53.743 回答
0

我已经问过 Arshaw(fullcalendar 的作者)为什么 JSfiddle 可以工作而不是在我的网站上,看起来他不知道任何 RANGES 功能。

看看这里:在此处 输入链接描述

于 2016-06-13T05:58:42.277 回答