php - MySQL PHP 从数据库表中获取倒数时间

标签 php mysql datetime time

所以我有 2 个表,一个用户表和一个约会表。我希望能够做的是从数据库中获取不存在的时间。

我将举几个例子,因为这可能没有任何意义,下面是我的 2 个表格。

+-----------------+
|      Users      |
+-----------------+
|  ID  |   Name   |
+------+----------+
|  1   |   Bill   |
|  2   |   John   |
+------+----------+

+-------------------------------------------------------------------------+
|                                   Appointments                          |   
+----------+--------------------+-------------------+---------------------+
|  UserID  |    DateTimeFrom    |    DateTimeTo     |   AppointmentName   |     
+----------+--------------------+-------------------+---------------------+
|     1    |  2012-06-16 10:00  |  2012-06-16 11:00 |      Hair Cut       |
|     1    |  2012-06-16 14:30  |  2012-06-16 16:00 |         Work        |
|     1    |  2012-06-16 19:00  |  2012-06-16 22:00 |  Dinner and Drinks  |
|     2    |  2012-06-16 07:00  |  2012-06-16 10:30 |      Travelling     |
|     2    |  2012-06-16 16:00  |  2012-06-16 16:30 |        Dentist      |
+----------+--------------------+-------------------+---------------------+

我想要返回的是空时间或倒数时间,例如,如果我只是在 6 月 16 日为 Bill 做这件事,那么我想要返回的是:

+--------------+------------+
|   TimeFrom   |   TimeTo   |
+--------------+------------+
|    00:00     |    10:00   |
|    11:00     |    14:30   |
|    16:00     |    19:00   |
|    22:00     |    23:59   |
+--------------+------------+

如果我在 6 月 16 日为两个用户都这样做,那么我会得到类似的东西:

+--------------+------------+
|   TimeFrom   |   TimeTo   |
+--------------+------------+
|    00:00     |    07:00   |
|    11:30     |    14:30   |
|    16:30     |    19:00   |
|    22:00     |    23:59   |
+--------------+------------+

或者尽可能接近的东西。我不知道在 MySQL 中是否有好的方法,或者我是否必须使用 PHP 将时间转换为它们的倒数。

提前致谢。

最佳答案

据我所知,在 mysql 中没有直接处理此问题的功能,但是在 PHP 中很容易处理。

如果您没有从一天到另一天的任何事件,那么您需要做的就是按顺序将所有时间放入一个数组中(开始、结束、开始、结束、开始、结束。 ..) 然后 array_unshift '00:00' 到开头, array_push '23:59' 到结尾,然后 array_chunk 两个,你就会得到你想要的输出。

如果您确实有从一天到另一天的事件,那么您可以采用相同的方法,但使用时间戳,将 00:00 替换为第一天开始的时间戳,将 23:59 替换为第一天开始的时间戳最后一天结束。

很抱歉没有发布代码,但我觉得这种方法比在这种情况下简单地交付代码来更好地解释。

关于php - MySQL PHP 从数据库表中获取倒数时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226073/

相关文章:

c# - 从 Kinect 传感器数据计算 BPM

php - 发布时从 base64 编码的字符串中删除空格

javascript - 如何在悬停时弹出图像?

php - 获取具有不同键的两个集合之间的差异

mysql - 如何从 MySQL 中的动态键值对中提取 JSON?

Python 3 pymysql 插入空日期时间字段

php - 如何在 prestashop 的购物车摘要页面中明智地显示所有产品类别

MYSQL like 子句找到太多匹配项

php - 设置php mysql的开始时间和结束时间

java - 使用 Calender 或 java 中的任何类查找上个月名称