2
My hosting is configured for UTC (GMT 00:00) and I can’t change through Mysql, due to blocks being a shared host. My PHP code brings results of date/time of orders, but it is with 3h above (due to our GMT of Sao Paulo be -03:00)
I have this function and I would like to correct in it this difference of -3 hours.
function converteDataHora($data, $hora=true){
// Aqui pegamos a data, e dividimos ela em duas, usando a métodoExplode()
$data = explode(" ", $data);
// AQUI TEMOS AS DUAS PARTES
$data1 = $data[0]; // DATA (xxxx-xx-xx)
$data2 = $data[1]; // HORA (xx:xx:xx)
// Agora dividimos a data em três partes, também usando o método Explode()
$data1 = explode("-", $data1);
$dia = $data1[2]; // Retorna o dia
$mes = $data1[1]; // Retorna o mês
$ano = $data1[0]; // Retorna o ano
/* Como deve ter notado, dentro das variáveis existem o número de array, o 0(zero) trás o ano, 1 o mês e o 2 o dia para saber mais recomendo pesquisar sobre a função
Agora vamos formatar a data, trazemos as strings, e a hora
Aonde dia traz a string $data1[2]
Aonde mês traz a string $data1[1]
Aonde ano traz a string $data1[0]
Como não precisamos "explodir" a hora trazemos ela normalmente através da string $data2
*/
$data = $dia . "/" . $mes . "/" . $ano;
if($hora==true)
$data .= " às " . $data2;
// Retornamos o valor
return $data;
}
This way did not give, because I put an echo inside the page that makes the save, and there it updates the time, but when saved in mysql, it records as GMT date 0 (3h ahead)
– Everton Thomazi
Dear @Evertonthomazi you probably set up something wrong or failed to apply the suggested logic in the reply, can give more details?
– Guilherme Nascimento
This which I found strange, because I put <?php date_default_timezone_set("America/Sao_paulo"); ? > in the config.php of my site, in the php of the cart (that makes the request), and I put an "echo date('H:i:s')" to see the time, when I changed the Timezone to another random, this echo changed, but in recording the request, it still saved as UTC
– Everton Thomazi
@Evertonthomazi depends on how you are recording
– Guilherme Nascimento
@Evertonthomazi Sorry, it was really my mess, I set the example
$horario = gmdate('Y-m-d H:i:s', strtotime($_POST['horario_selecionado_pelo_usuario']);
– Guilherme Nascimento