如何在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:002015-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 中的 DataTables 分页和搜索框?

如何在 html + php(codeIgniter) 中渲染树

如何在 PHP Codeigniter 中获取 40 岁以上的人员列表

如何在 PHP codeigniter 中显示来自 FTP 服务器的图像? [复制]

如何在 PHP CodeIgniter 中保存文本框中输入的数据