Вы сравниваете строки, это иногда работает, но не всегда. Лучше так:
function isOpen() {
$now = new DateTime('now');
$open = new DateTime('today 08:00');
$closed = new DateTime('today 23:00');
return ($now > $open && $now < $closed);
}
echo isOpen();