Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
Estou com o seguinte codigo php:
// Saudação
$hora = date("H");
if ($hora >= 0 and $hora < 6) {
echo "Boa Madrugada!";
} echo "Bom dia!";
} echo "Boa tarde!";
}
else {
echo "Boa noite";
}Nele a hora ta saindo com H:i:s ou seja no formato: 10:30:25 gostaria apenas que aparece-se H:i horas e minutos.
Notei também que os turnos não está corretos tipo quando da 17h ele diz que é Boa noite quando na verdade seria boa tarde, ou seja é como se diminuese uma hora em seu turno, alguem poderia me dar uma luz ae?
Em primeiro lugar, "Boa madrugada" não existe.
Em segundo lugar, é melhor fazer isso usando JavaScript, que usará as configurações de hora do cliente, ao invés de PHP, que usará as do servidor. Se o seu servidor estiver no Brasil e configurado para o fuso-horário 'America/Sao_Paulo', agora são quase 11 da manhã, então a saudação será "Bom dia", mas se você receber um visitante de Portugal, dar "Bom dia" para ele será estranho pois agora já são quase 3 da tarde lá.
JavaScript
var d = new Date();
var time = d.getHours();
if (time < 12)
{
document.write("Bom dia!");
}
if (time > 12 && time <= 18)
{
document.write("Boa tarde!");
}
if (time > 18)
{
document.write("Boa noite!");
}mangakah, seguir seus conselhos e mudei para JS a aplicação, ficou bem melhor e atende o que eu preciso, muito obrigado pela dica.
Tente modificar o seu date_default_timezone_set para:
date_default_timezone_set('America/Sao_Paulo');
[]'s