php-将完整小时间隔与四分之一小时间隔数组分开

问题描述

当前我有$ quarterHrIntervalArr,即15分钟间隔数组,其中19:15是开始时间,22:45是结束时间。

19:15
19:30
19:45
20:00
20:15
20:30
20:45
21:00
21:15
21:30
21:45
22:00
22:15
22:30
22:45

我如何从上面的数组中分离出完整的hr,例如20-21 = 20hr和21-22 = 21hr是完整的小时,如何从$ quarterHrIntervalArr中删除完整的hr时间间隔并存储在$ hrIntervalArr中。

所以最后两个数组就像

$quarterHrIntervalArr = [19:15,19:30,19:45,22:00,22:15,22:30,22:45]

$hrIntervalArr = [20:00,21:00]; // Note 22:00 is not added because its not complete hr as 23:00 is not endtime.

解决方法

我认为您应该转换为时间戳。之后,时间戳%3600,如果结果== 0,则为H:00。

这是我的示例:

<?php

$quarterHrIntervalArr = [
"19:15","19:30","19:45","20:00","20:15","20:30","20:45","21:00","21:15","21:30","21:45","22:00","22:15","22:30","22:45"
];

$res = [];
foreach ($quarterHrIntervalArr as $key => $value) {
    $time = strtotime($value)%3600; // check time is H:00
    if($time == 0)
    {
        $res[] = $value;
    }
}
array_pop($res);

var_dump($res); // ["20:00","21:00"]