我有一个间隔创建了2个日期。
2020年6月28日至2020年05/07
如果在此间隔中有添加到数据库中的日期,它会警告我在此间隔中有添加到数据库中的日期。
使用FullCalendar创建日期数据库。
如果在所选日期28/06/2020到05/07/2020之间不仅有一个日期,而且还有一个间隔,例如31/06/2020到03/07/2020,我也无法让它通知我
或者如果所选日期为:28/06/2020至05/07/2020,但在数据库中存在从26/06/20202至29/06/2020的间隔。
有可能做到这一点吗?
对于单个日期,不带间隔,并使用了以下内容:
$paymentDate=date('Y-m-d', strtotime("03/07/2020"));
$contractDateBegin = date('Y-m-d', strtotime("28/06/2020"));
$contractDateEnd = date('Y-m-d', strtotime("07/07/2020"));
if (($paymentDate >= $contractDateBegin) && ($paymentDate <= $contractDateEnd)){
echo "is between";
}else{
echo "NO GO!";
}
bd完整日历。
--
-- Table structure for table `events_laboral`
--
CREATE TABLE `events_laboral` (
`id` int(11) NOT NULL,
`title` varchar(255) NOT NULL,
`color` varchar(7) DEFAULT NULL,
`start` datetime NOT NULL,
`end` datetime DEFAULT NULL,
`empresa` text NOT NULL,
`usuario` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `events_laboral`
--
bd间隔日期。
--
-- Table structure for table `vacanciones`
--
CREATE TABLE `vacanciones` (
`id` int(255) NOT NULL,
`empresa` text NOT NULL,
`usuario` text NOT NULL,
`fecha_inicio` text NOT NULL,
`fecha_final` text NOT NULL,
`fecha_peticion` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`fecha_cambio` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`status` text NOT NULL,
`mesaje` longtext NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `vacanciones`
--
编辑:我在考虑php搜索两个选定的日期之间,如果有一个开始或结束日期的任何事件。 并且如果它给出了一个正的开始日期,则在所选间隔日期的开始和结束之间进行计算,通知用户所选的天数已经在数据库中。
请考虑以下事项:
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(event_id CHAR(1)
,event_start DATE NOT NULL
,event_end DATE NOT NULL
,PRIMARY KEY(event_id)
);
INSERT INTO my_table VALUES
('A','2020-06-28','2020-07-05'),
('B','2020-06-26','2020-06-29'),
('C','2020-07-04','2020-07-05'),
('D','2020-07-06','2020-07-07');
SELECT x.*
, y.event_id clashes_with_event
FROM my_table x
JOIN my_table y
ON y.event_id <> x.event_id
AND y.event_start <= x.event_end
AND y.event_end >= x.event_start;
+----------+-------------+------------+--------------------+
| event_id | event_start | event_end | clashes_with_event |
+----------+-------------+------------+--------------------+
| B | 2020-06-26 | 2020-06-29 | A |
| C | 2020-07-04 | 2020-07-05 | A |
| A | 2020-06-28 | 2020-07-05 | B |
| A | 2020-06-28 | 2020-07-05 | C |
+----------+-------------+------------+--------------------+