Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Não está funcionando esse esqueminha de horário comercial, será que está errado:
$dateTime = date('H:i:s');
if($dateTime < "17:00:00" AND $dateTime > "17:30:00"){
return Response::json([
'title' => 'Horário de Atendimento',
'errors' => ['Infelizmente este percurso está fora de horário de atendimento.'],
'success' => false
], 401);
}
Podem me ajudar?
Assim não vai funcionar mesmo rs, os operadores < e > só funcionam pra inteiros e float, com o ":" não vai rolar, quem dera ser tão fácil comparar datas... pra isso você precisa usar a classe nativa DateTime do PHP. Dê uma pesquisada na internet que tem bastante conteúdo e vai suprir sua necessidade.
Totalmente errado.
O problema em tela é de lógica, como $dateTime pode ser AO MESMO TEMPO (AND) menor que 17:00:00 e maior 17:30:00, essas duas situações são excludentes entre si, por isso, por óbvio nunca retornará como verdadeiro.
Se ele deseja verificar se a hora está ENTRE esses dois horários basta ele inverter os sinais:
$dateTime = '17:12:45';
if($dateTime > "17:00:00" AND $dateTime < "17:30:00"){
echo 'aqui!';
}else{
echo 'fora';
}
Da mesma forma, se ele quer um horário que esteja FORA, basta alterar o AND para OR (mantendo os sinais originais):
$dateTime = '17:30:01';
if($dateTime < "17:00:00" OR $dateTime > "17:30:00"){
echo 'aqui!';
}else{
echo 'fora';
}Realmente eu falei bost@ ahhaha, vai na do Serra que é melhor, mas mesmo assim, eu ainda reforço minha colocação de que no meu caso, eu usaria o DateTime
Assim não vai funcionar mesmo rs, os operadores < e > só funcionam pra inteiros e float, com o ":" não vai rolar, quem dera ser tão fácil comparar datas... pra isso você precisa usar a classe nativa DateTime do PHP. Dê uma pesquisada na internet que tem bastante conteúdo e vai suprir sua necessidade.