首页 > 解决方案 > PHP DateDiff 时间范围块

问题描述

我的时间范围以 30 分钟为单位,

13:00 - 13:30

13:30 - 14:00

14:00 - 14:30

15:00 - 15:30

etc...

我想在当前时间选择正确的 30 分钟块。

例如

Current Time 13:42

13:00 - 13:30

13:30 - 14:00  <- This block is selected

14:00 - 14:30

15:00 - 15:30

目的是检索为该块分配一个值。

真的我要问的是我会使用什么方法和方法?

我将使用 PHP

谢谢

    $hour = date('H');
    $minutes = date('i');

    if ($minutes >= 30) 
    {
        $hour++;
    }


    echo $hour;


    /////////////////////

    echo "<BR>";


    $hour = date('H');
    $minute = (date('n')>30)?'30':'00';
    echo "$hour:$minute";

标签: phpdatediff

解决方案


用explode拆分后的简单字符串比较在这里:

$blocks = [
'12:30 - 13:00',
'13:00 - 13:30',
'13:30 - 14:00',
'14:00 - 14:30'
];

$curTime = '13:42';
$found = false;
foreach($blocks as $key => $block){
  $time = explode(' - ',$block);
  if($curTime >= $time[0] AND $curTime < $time[1]){
    $found = $key;
    break;
  }
}
if($found !== false) echo $blocks[$found];
else echo 'not found';

推荐阅读