Como fazer com que a informação da Hora correta seja mostrada corretamente no Switch Case

Enviada por Luiz Antonio Duarte Estevam Franco 
Luiz Antonio Duarte Estevam Franco
Como fazer com que a informação da Hora correta seja mostrada corretamente no Switch Case
06 de February de 2018 às 04:33PM
Olá baseado no código abaixo montei um switch ao qual o propósito fosse que em cada hora ou maior do que determinado horário e baseado no mesmo horário fosse mostrada uma determinada informação – só que mesmo quando chega no segundo horário '18:50:00’ ele continua mantendo a informação do primeiro horário em outras palavras ele não muda o que estari faltando no código do swith case abaixo para que a informação retorna-sse corretamente

<?php
// DEFINE O FUSO HORARIO COMO O HORARIO DE BRASILIA
date_default_timezone_set('America/Sao_Paulo');

//echo date('h:i:s').'<br />'; //Resultado: 06:52:49
//HORA FORMATO BRASILEIRO
$hora = date('H:i:s'); //Resultado: 18:52:03

switch (true) {
case ($hora == '16:30:00' || $hora >= '16:30:00'):
echo 'Informação da Hora';
break;

case ($hora == '18:50:00' || $hora >= '18:50:00'):
echo 'Informação do Horário';

break;
}


?>

NO AGUARDO SE ALGUEM PUDER ME AJUDAR E DESDE JÁ AGRADEÇO
Eu não costumo usar esse switch case, então não sei se ele tem algum truque interno que contorne o que me parece ser um erro de lógica no seu código.

Se fosse com if e elseif, haveria um erro de lógica aqui:

case ($hora == '16:30:00' || $hora >= '16:30:00'):

Note que seu próximo horário (18:50:00) é maior que 16:30:00; então, o código, acertadamente, mostraria 'Informação da Hora'. O correto seria if ($hora >= '16:30:00' and $hora < '18:50:00') .

Teste aí. Veja se não seria isso.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.