Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde Pessoal, tudo bem?
Desenvolvi um sistema simples de venda pra um cliente. E o quando o horário passa das 23h toda venda é lançada pro dia seguinte.
Ex: hoje 04/03/21 às 23h15, eu faço uma venda. No sistema grava como sendo 05/03 já.
Alguém sabe o que pode ser?
Obrigado desde já.
Altere o horário do seu pc e faça um teste. Tente assim:
<?php
setlocale(LC_ALL, 'portuguese');
date_default_timezone_set('America/Sao_Paulo'); // <- estado em pauta ex
$data_e_hora = 'hoje he -- '.date('d-m-Y -- H:i:s');
print $data_e_hora;
?>>
19 horas atrás, Biel. disse:
Altere o horário do seu pc e faça um teste. Tente assim:
<?php
setlocale(LC_ALL, 'portuguese');
date_default_timezone_set('America/Sao_Paulo'); // <- estado em pauta ex
$data_e_hora = 'hoje he -- '.date('d-m-Y -- H:i:s');
print $data_e_hora;
?>
Primeiramente obrigado pela dica. Bom, se eu fizer isso, o print exibe uma hora a mais do horário correto.Pessoal, eu cometi um erro aqui: na verdade o sistema não acrescenta 1 hora depois das 23h, na verdade ele sempre está 1h adiantado, então às 23h ele já muda pro dia seguinte.
Teria como eu reduzir, de alguma forma, a hora dessa função -> date_default_timezone_set('America/Sao_Paulo');
Obrigado desde já.Problema corrigido. Aqui no meu pc funcionou normalmente.
<?php
$data2 = date("d/m/Y", mktime(gmdate("H")-3));
print "<b>dia mes e ano:</b> " .$data2 .'<br>';
$hora2 = date("H:i:s", mktime(gmdate("H")-3 ));
print "<b>Hora Atual:</b> " .$hora2;
?>
A primeira coisa que veio em minha mente foi:
-
Buscar o horário atual
-
Usar a função explode para pegar a hora
-
Se for maior que 23 ou 00 usando a função strtotime aumentar mair uma hora, assim prevendo para que não aconteça erros de data caso seja último dia de cada mês ou ano.
-
Caso não seja 23 ou 00 usar a mesma data atual.
Exemplo:
} else {