PHP DateDiff временной диапазон блоков - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть диапазон времени в блоках по 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";

1 Ответ

0 голосов
/ 07 ноября 2019

Простое сравнение строк после разделения с разнесением делает это здесь:

$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';
...