У меня дата и время хранятся отдельно в разных столбцах таблицы. Итак, я пытаюсь проверить, является ли текущее время на 30 минут раньше или позже времени в базе данных.
Допустим, у меня есть список даты и времени, хранящийся следующим образом:
дата | время
2020-05-29 00:10:00
2020-05-29 09:00:00
Если моя текущая дата 2020-05-28
и время 23:50:00
, ближайшие дата и время должны быть 1-й строкой 2020-05-29, 00:10:00
, где диапазон должен быть от 2020-05-28, 23:35:00 - 2020-05-29, 00:35:00
У меня есть код, но он может определять только диапазон времени на в ту же дату.
$currentTime = time();
$minTime = date("H:i", strtotime('-30 minutes', $currentTime));
$maxTime = date("H:i", strtotime('+30 minutes', $currentTime));
// My query to get the list of date and time on one specific date and populate to $datetimeArr
// $sql = 'SELECT id, date, time FROM table WHERE date = "'.date('Y-m-d').'"';
$datetimeArr = [
[
'date' => '2020-05-29',
'time' => '00:10:00'
],
[
'date' => '2020-05-29',
'time' => '09:00:00'
],
];
foreach ($datetimeArr as $k => $row) {
if($row['time'] >= $minTime && $row['time'] <= $maxTime) {
$nearestDate = $row;
continue;
}
}
Итак, проблема в том, что я не могу правильно определить диапазон, если он за 30 минут до или после нового дня.