如何在php/codeigniter或mysql中获得两个相差20分钟的日期的所有组合
Posted
技术标签:
【中文标题】如何在php/codeigniter或mysql中获得两个相差20分钟的日期的所有组合【英文标题】:how to get all combination of two dates with 20 minutes difference in php/codeigniter or either mysql 【发布时间】:2016-01-10 00:41:14 【问题描述】:我的数据库中有这个:
我想在选择框中显示医生的可用时间,相差 20 分钟,例如从
2015-10-12 02:00:00 到 2015-10-12 04:00:00 我需要的是
02:00:00
02:20:00
02:40:00
03:00:00
03:20:00
03:40:00
04:00:00
我试过这个select '2015-10-12 02:00:00' + INTERVAL 20 MINUTE
,但它只显示一个值,我需要所有可能的组合。
【问题讨论】:
使用 mysql between :- BETWEEN date1 AND date2 @Rahautos 你能给我看看例子吗? 【参考方案1】:用户 DateTime()
、DateInterval()
和 DatePeriod()
每 20 分钟循环一次该日期时间段并输出时间。请注意,我们必须在结束时间上添加一分钟,因为默认情况下DatePeriod
不 包括最后结束时间。添加该分钟将获得最后一次被包括在内。
$start = new DateTime('2015-10-12 02:00:00');
$end = (new DateTime('2015-10-12 04:00:00'))->modify('+1 minute');
$interval = new DateInterval('PT20M');
$period = new DatePeriod($start, $interval, $end);
foreach($period as $date)
echo $date->format('H:i:s');
Demo
【讨论】:
这在应用层更容易做到,除非数据库有一个包含所有时隙的表。 @john 此代码工作正常。但为什么这会在编辑器中显示错误。 ? 我不能肯定地说,但您的编辑器可能不知道此代码使用的某些语法。你用的是什么编辑器? 我正在使用 Dream Viewer。 :p 啊,这不是最好的编辑器,尤其是对于 php 代码。这可以解释为什么它不能处理它。以上是关于如何在php/codeigniter或mysql中获得两个相差20分钟的日期的所有组合的主要内容,如果未能解决你的问题,请参考以下文章
PHP,Codeigniter:如何在Web应用程序中根据用户时区/位置设置日期/时间?
如何使用 PHP CodeIgniter 将 CSV 数据导入 MYSQL 数据库?