PHP, если час находится между двумя другими часамиPhp

Кемеровские программисты php общаются здесь
Anonymous
PHP, если час находится между двумя другими часами

Сообщение Anonymous »

Мне нужно определить, находится ли текущий час между двумя другими временами. Например, чтобы проверить, находится ли время между 07:00 и 10:00, я мог бы использовать:

Код: Выделить всё

$currentTime = new DateTime('09:00');
$startTime = new DateTime('07:00');
$endTime = new DateTime('10:00');

if ($currentTime->format('H:i') >= $startTime->format('H:i') && $currentTime->format('H:i') format('H:i')) {
// Do something
}
У меня проблема в том, что произойдет, если время 01:00, и я хочу проверить, находится ли оно между 22:00 и 07:00. Меня не беспокоит, что сегодня другой день, просто если он попадает между этими двумя часами в 24-часовом формате. Пример 01:00 находится между 22:00 и 07:00

22:00, 23:00, 00:00, 01:00, 02:00... 07:00

В конечном итоге я пытаюсь добиться того, что в разное время за услугу могут быть установлены разные цены. Итак, в настоящее время я просматриваю каждый час, определяя, в какую ценовую категорию попадает этот час, и соответствующим образом меняю цену. Если у кого-нибудь есть более элегантное решение проблемы, я был бы рад узнать.

ОБНОВЛЕНИЕ:

Скажем, у меня есть правило, согласно которому с 22:00 до 7 утра я хочу взимать двойную плату. Я просматриваю каждый час от времени начала до времени окончания и проверяю, попадает ли каждый час между 22:00 (22:00) и 07:00 (7:00), и если да, то за него должна взиматься двойная плата. Я хочу избежать необходимости учитывать дату.

Подробнее здесь: https://stackoverflow.com/questions/263 ... ther-hours

Вернуться в «Php»