Доброго времени! Пробую сверить время в формате ЧЧ:ММ есть функция которая через str_replace вырезает из текущего времени формата Y-m-d H:i:s (2017-12-02 17:08:11) и записывает его в переменную $new. Дальше требуется проводить сравнения вроде:
if ($new >= "13:00" && $new <= "15:45") {
//операции
}
но сравнение идет не корректно как я понял из-за того что время сравнивается в формате строк. Можно ли как то сравнить что бы не было глюков? но очень надо что бы сравнивались именно часы без указания более точных дат, может какое то временное преобразование часов в более полную дату а затем сравнивать уже. Но главное приоритетно что бы в конструкциях if else указывалось именно время в формате часы-минуты
Вот еще вариант функции
<?php
function isBetween($hi, $st, $end) {
$hi = strtotime($hi);
$st = strtotime($st);
$end = strtotime($end);
if ($st < $end) {
return $st <= $hi && $hi <= $end;
} else {
return (strtotime('00:00') <= $hi && $hi <= $end)
|| ($st <= $hi && $hi <= strtotime('23:59'));
}
}
var_dump(isBetween('08:01', '08:00', '17:00'));
var_dump(isBetween('07:59', '17:00', '08:00'));
var_dump(isBetween('17:00', '17:00', '08:00'));
var_dump(isBetween('23:59', '17:00', '08:00'));
var_dump(isBetween('07:59', '08:00', '17:00'));
var_dump(isBetween('07:60', '08:00', '17:00'));
var_dump(isBetween('16:59', '17:00', '08:00'));
var_dump(isBetween('24:00', '17:00', '08:00'));
var_dump(isBetween('24:00', '08:00', '17:00'));
Результат
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
Тест http://sandbox.onlinephpfunctions.com/code/d4580648fe605c1cb4544f5cbb30a9b01455e727
На вход функция ждет строки в формате HH:MM
. Если хотите с секундами, то в функции нужно дописать к 23:59
хвостик :59
.
Возвращает true
если:
$hi
находится между $st
и $end
, при $st
< $end
$hi
<= $st
или $hi
>= $end
, при $st
>= $end
P.S. Используете на свой страх и риск.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый день, пишу проект (на macbook) с преподавателем, сайт с созданием заметок и, естественно, системой регистрацииВ моем распоряжении есть: