Ir para conteúdo
Fórum Script Brasil
  • 0

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


Luiz Itatiba

Pergunta

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 alguém PUDER ME AJUDAR E DESDE JÁ AGRADEÇO

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Esse formato de data e hora não são contados como números e sim como STRING, então o IF ou CASE nunca irá conseguir saber quem é maior que quem.

Não posso testar agora, mas tente usar strtotime()

Antes da Swicth

$hora = strtotime($hora);

 

Um dos case, faça o mesmo no outro.

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

 

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde o problema é que no primeiro case você usou o ou e uma das comparações esta dando sempre True , pois o horario das 18:50 ou superior também é maior que 16:30 , tente o codi abaixo.

<?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  < '18:50:00'):
        echo 'Informação da Hora ';
        break;

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

?>

 

Editado por Fabio Soares
error de português
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...