我正在使用 Fullcalendar 4 创建一个预订系统,供客户预订设备维修的标注时段。
到目前为止,在此处用户的帮助下,我已经设法让日历对象将预订的时段填充到日历中,而且我几乎也使用单独的 eventSouce 并在 php 上将其添加到免费的未预订时段中服务器端一天中哪些时段被占用并跳过它们。
$cDate是 Fullcalendar 发送的请求的 DateTime 转换开始日期。
$eDate是 Fullcalendar 发送的请求的 DateTime 转换结束日期。
$daysInRange是一个 datediff 变量,我在页面上进一步计算它以查看 $cDate 和 $eDate 之间有多少天。
典型的 url 如下来自 ajax 请求:
getBookings.php?start=2020-06-05T00%3A00%3A00&end=2020-06-05T00%3A00%3A00&timeZone=Europe%2FLondon
$bookingStart = new DateTime( $_GET[ 'start' ] );
$bookingEnd = new DateTime( $_GET[ 'end' ] );
//Get The Start Date/Time seperately and End Date/Time Seperately.
$startdate = date_format( $bookingStart, 'Y-m-d' );
$starttime = date_format( $bookingStart, 'H:i:s' );
$enddate = date_format( $bookingEnd, 'Y-m-d' );
$endtime = date_format( $bookingEnd, 'H:i:s' );
上面的代码可以工作,但是例如,如果 2020-06-05 在 09:00:00 - 11:00:00 有一个时段,范围是 2020-06-01 到 2020-06-08 那么我在 5 号上午 9 点到上午 11 点预订了红色时段,绿色时段也是免费时段。
我不知道为什么我得到这个..
倚天杖