Bandicoot
@Bandicoot
Программирование == Инженерное дело

Как лучшим образом проверить, входит ли конкретное время в заданный временной диапазон?

Есть в MySQL один замечательный тип TIME, в котором прописывается время в формате HH:MM:SS. В моей таблице есть 2 поля с типом TIME - начало и конец временного диапазона. Мне нужно определить средствами PHP, входит ли конкретное время, например 12:45:00, в необходимый диапазон.

Как можно это сделать? Как я понимаю, переводить время в число через strtotime - не лучшее решение.
  • Вопрос задан
  • 118 просмотров
Решения вопроса 2
AlexMcArrow
@AlexMcArrow
Люблю РНР, да я такой!
Лучше это сделать на этапе выборки из БД.
Ведь когда вы делаете запрос в БД, у вы скорее всего уже знаете диапазон.
Если же вопрос стоит не в том что бы выбрать только попадающие в диапазон,а выбрать все, а те кто входит в диапозон "отметить" - опять же это можно сделать на уровне запроса:
SELECT
   IF(timefield >= TIME('14:51:08') AND timefield <= TIME('14:51:09'),1,0) as intime
FROM ....
Ответ написан
@ffosters
Если нужно сделать выборку: https://dev.mysql.com/doc/refman/5.7/en/comparison...

Иначе:
$time = '12:45:00';
$start = '12:46:00';
$end = '13:45:00';

$time = DateTime::createFromFormat('H:i:s', $time);
$start = DateTime::createFromFormat('H:i:s', $start);
$end = DateTime::createFromFormat('H:i:s', $end);

if ($time > $start && $time < $end)
{
   echo 'here';
}


https://stackoverflow.com/questions/15911312/how-t...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bubandos
@bubandos
bash'у, javascript'ую, php'лю, css'аю, html'каю
Можно разбить строку по двоеточию и сравнивать по частям.
Можно поудалять двоеточия и сравнивать полученный результат как числа.
А можно не париться и просто сравнить строки.
По алгоритму сравнения строк все будет ровно проверяться, если у вас 24 часовой формат и часы/минуты/секунды всегда заданы двухзначным числом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
от 90 000 до 150 000 руб.
15 авг. 2018, в 23:38
300 руб./за проект
15 авг. 2018, в 22:39
60000 руб./за проект
15 авг. 2018, в 21:18
30000 руб./за проект