我正在开发基于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 |
+------------+
当然,我试图在这里搜索并知道,有类似的问题得到了解答,但它们只是显示给定日期之间的日期,并没有考虑到"一天"事件。
提前感谢任何帮助。
编辑:获得此消息的原因是显示日历视图中哪些日子有任何事件。
$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));
SELECT name
FROM events
WHERE start BETWEEN ' 2014-10-28' AND '2014-10-28'
试试这个