我正在研究基于PHP和MySQL的应用程序。您可以在其中创建活动,进行预订等。我们假设我有MySql表:
--table 'events'
+------+---------------------+---------------------+
| name | startdate | enddate |
+------+---------------------+---------------------+
| aaa | 2014-10-28 00:00:00 | 2014-10-28 23:59:59 |
| bbb | 2015-01-01 10:00:00 | 2015-01-01 16:00:00 |
| ccc | 2014-12-24 17:00:00 | 2014-12-28 08:30:30 |
+------+---------------------+---------------------+
我需要的是获取事件发生的所有日期。因此,对于在同一天开始和结束的事件,我想获得单日期,对于多日活动,我想获得开始日期,然后是结束日期的日期。因此,预期结果将如下所示:
+------------+
| dates |
+------------+
| 2014-10-28 |
| 2015-01-01 |
| 2014-12-24 |
| 2014-12-25 |
| 2014-12-26 |
| 2014-12-27 |
| 2014-12-28 |
+------------+
当然,我试图在这里搜索并知道,有类似的问题得到解答,但他们只是在给定日期之前显示日期,并且不记得“一天”事件。
提前感谢您的帮助。
编辑:获得此功能的原因是要显示日历视图中哪些日期有任何事件。
答案 0 :(得分:1)
$getEvents = mysqli_query("SELECT ...... You query");
$row_getEvents = mysqli_fetch_assoc($getEvents);
do {
$date = date("Y-m-d", strtotime($row_getEvents['startdate']));
$end_date = date("Y-m-d", strtotime($row_getEvents['enddate']));
while (strtotime($date) <= strtotime($end_date)) {
echo "$date\n";
$date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
}
} while ($row_getEvents = mysqli_fetch_assoc($getEvents));
答案 1 :(得分:-1)
SELECT name
FROM events
WHERE start BETWEEN ' 2014-10-28' AND '2014-10-28'
试试这个