从开始和结束时间在PHP中分配20分钟的时间段

ITit超级大国

例如->

 Start time = 2015-10-21 09:00:00
 end time  = 2015-10-21 19:45:00

所以按照我的例子-开始时间是 9 am to 7-45pm

所以我想要20分钟的空档。在PHP一样

9:00 - 9:20 , 9-20 to 9-40 etc但也已ex 12:00-12:20 , 2:40 to 2:60预订,则不会包含在此列表中。

我想腾出20分钟的时间。是的,但是它也会过滤alr

使用PHP中的时差,我有开始时间和结束时间。

然后我要检查从开始时间到结束时间可能有20分钟的时间段

=>它还会检查是否已经预订了某个时隙,然后不考虑

IN SHOT 1 to 2 or 3-5 is break time then it will not consider. 
苏宾·托马斯

这将满足您的需求。但是,应为数组元素保留特定格式,以便于计算。

<?php
$start_time = '2015-10-21 09:00:00';  //start time as string
$end_time = '2015-10-21 19:45:00';  //end time as string
$booked = array('12:20-12:40','13:00-13:20');    //booked slots as arrays
$start = DateTime::createFromFormat('Y-m-d H:i:s',$start_time);  //create date time objects
$end = DateTime::createFromFormat('Y-m-d H:i:s',$end_time);  //create date time objects
$count = 0;  //number of slots
$out = array();   //array of slots 
for($i = $start; $i<$end;)  //for loop 
{
$avoid = false;   //booked slot?
$time1 = $i->format('H:i');   //take hour and minute
$i->modify("+20 minutes");      //add 20 minutes
$time2 = $i->format('H:i');     //take hour and minute
$slot = $time1."-".$time2;      //create a format 12:40-13:00 etc
    for($k=0;$k<sizeof($booked);$k++)  //if booked hour
    {
    if($booked[$k] == $slot)  //check
    $avoid = true;   //yes. booked
    }
if(!$avoid && $i<$end)  //if not booked and less than end time
{
$count++;           //add count
$slots = ['start'=>$time1, 'stop'=>$time2];         //add count
array_push($out,$slots); //add slot to array
}
}
var_dump($out);   //array out
echo $count ." of slots available";

如果您使用预订的日期时间作为数组,请使用以下代码。

<?php
$start_time = '2015-10-21 09:00:00';  //start time as string
$end_time = '2015-10-21 19:45:00';  //end time as string
$booked = ['2015-10-21 12:20:00','2015-10-21 12:40:00', '2015-10-21 13:00:00','2015-10-21 13:20:00'];
     //booked slots as arrays
$start = DateTime::createFromFormat('Y-m-d H:i:s',$start_time);  //create date time objects
$end = DateTime::createFromFormat('Y-m-d H:i:s',$end_time);  //create date time objects
$time1 = $start;
$count = 0;  //number of slots
$out = array();   //array of slots 
for($i = $start; $i<$end;)  //for loop 
{
$avoid = false; 
$t1 = date_timestamp_get($i);
$t2 = $t1+(20*60);

    for($k=0;$k<sizeof($booked);$k+=2)  //if booked hour
    {
    $st = DateTime::createFromFormat('Y-m-d H:i:s',$booked[$k]);
    $en = DateTime::createFromFormat('Y-m-d H:i:s',$booked[$k+1]);

    if( $t1 >= date_timestamp_get($st) && $t2 <= date_timestamp_get($en)  )
    $avoid = true;   //yes. booked
    }
$slots =[ $i->format('H:i'),$i->modify("+20 minutes")->format('H:i')];
if(!$avoid && $i<$end)  //if not booked and less than end time
{
$count++;  
array_push($out,$slots);  //add slot to array
}
}
var_dump($out);   //array out
echo $count ." of slots available";

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从开始和结束时间在PHP中分配20分钟的时间段

来自分类Dev

在mysql中的开始时间和结束时间之间获取30分钟的间隔数据

来自分类Dev

如何使用重叠的开始和结束时间来总结15分钟间隔内发生的活动时间(SQL)(t-SQL)

来自分类Dev

如何在R中的时间序列中创建指示开始和结束时间段的变量

来自分类Dev

具有开始和结束时间(分钟)的Cron模式

来自分类Dev

在熊猫datetime列中找到值之间的中点,并根据中点创建开始和结束时间段列

来自分类Dev

在特定时间段内每5分钟运行一次cron

来自分类Dev

每天在特定时间段内间隔30分钟进行MySQL事件调度

来自分类Dev

如何获得30分钟的时间段python2.7

来自分类Dev

每天在特定时间段内间隔30分钟进行MySQL事件调度

来自分类Dev

熊猫,检查datetimeindex的重新采样的30分钟时间段中是否存在时间戳值

来自分类Dev

Dygraph选择的开始和结束时间

来自分类Dev

获取今天的开始和结束时间

来自分类Dev

窗口的开始和结束时间

来自分类Dev

使用php打印开始时间和结束时间之间的时间间隔

来自分类Dev

开始时间和结束时间,以频率或百分比表示

来自分类Dev

由数据框中的列定义的时间段的开始和结束日期

来自分类Dev

新的Windows 10安装在会话开始前阶段需要约20分钟的时间

来自分类Dev

如何获得期间的开始时间和结束时间?

来自分类Dev

从日期时间戳记获取开始和结束时间

来自分类Dev

获取视频的开始时间和结束时间

来自分类Dev

时间戳python中昨天的开始和结束时间

来自分类Dev

从R?的时间向量中分别减去10分钟。

来自分类Dev

php拆分开始时间和结束时间并合并新数组

来自分类Dev

Mysql计算上次结束时间和当前开始之间的分钟,以记录系统停机时间

来自分类Dev

30分钟后编程开始和结束

来自分类Dev

如何选择给定日期段的最小开始时间和最大结束时间之间的时差?

来自分类Dev

FullCalendar timeGridWeek 拖动或选择时间段在一天结束时停止工作

来自分类Dev

如果时间戳超过20分钟,则删除文件php

Related 相关文章

  1. 1

    从开始和结束时间在PHP中分配20分钟的时间段

  2. 2

    在mysql中的开始时间和结束时间之间获取30分钟的间隔数据

  3. 3

    如何使用重叠的开始和结束时间来总结15分钟间隔内发生的活动时间(SQL)(t-SQL)

  4. 4

    如何在R中的时间序列中创建指示开始和结束时间段的变量

  5. 5

    具有开始和结束时间(分钟)的Cron模式

  6. 6

    在熊猫datetime列中找到值之间的中点,并根据中点创建开始和结束时间段列

  7. 7

    在特定时间段内每5分钟运行一次cron

  8. 8

    每天在特定时间段内间隔30分钟进行MySQL事件调度

  9. 9

    如何获得30分钟的时间段python2.7

  10. 10

    每天在特定时间段内间隔30分钟进行MySQL事件调度

  11. 11

    熊猫,检查datetimeindex的重新采样的30分钟时间段中是否存在时间戳值

  12. 12

    Dygraph选择的开始和结束时间

  13. 13

    获取今天的开始和结束时间

  14. 14

    窗口的开始和结束时间

  15. 15

    使用php打印开始时间和结束时间之间的时间间隔

  16. 16

    开始时间和结束时间,以频率或百分比表示

  17. 17

    由数据框中的列定义的时间段的开始和结束日期

  18. 18

    新的Windows 10安装在会话开始前阶段需要约20分钟的时间

  19. 19

    如何获得期间的开始时间和结束时间?

  20. 20

    从日期时间戳记获取开始和结束时间

  21. 21

    获取视频的开始时间和结束时间

  22. 22

    时间戳python中昨天的开始和结束时间

  23. 23

    从R?的时间向量中分别减去10分钟。

  24. 24

    php拆分开始时间和结束时间并合并新数组

  25. 25

    Mysql计算上次结束时间和当前开始之间的分钟,以记录系统停机时间

  26. 26

    30分钟后编程开始和结束

  27. 27

    如何选择给定日期段的最小开始时间和最大结束时间之间的时差?

  28. 28

    FullCalendar timeGridWeek 拖动或选择时间段在一天结束时停止工作

  29. 29

    如果时间戳超过20分钟,则删除文件php

热门标签

归档