Problema para subtrair datas: timezone influencia
Pessoal, estou com problema para somar e subtrair datas e horas e não estou conseguindo resolver. O problema está relacionado ao Timezone, que para Brasília estou setando date_default_timezone_set("Etc/GMT+3"). Até aí OK. Porém quando tendo fazer cálculos com valores absolutos de tempo usando timestamp, as funções de data do PHP teimam em fazer a correção de data. Eu sei que este é o comportamento normal do PHP, mas acho que talvez fosse interessante desabiltiar caso não tenha como corrigir.
Ex.: se date_default_timezone_set("Etc/GMT+0"), imprime certinho as datas e o cálculo com datas.
$Number = 864000;
// Imprime 1970-01-11 00:00:00
echo date("Y-m-d H:i:s", $Number)."<BR>";
$Number = 36000;
// Imprime 1970-01-01 10:00:00
echo date("Y-m-d H:i:s", $Number)."<BR>";
$Number = 864000-36000;
// Imprime 1970-01-10 14:00:00
echo date("Y-m-d H:i:s", $Number)."<BR>";
PERFEITO!!
Porém, preciso que o timezone seja o nosso, ou seja. "GMT+3". Então neste exemplo aparece o seguinte:
date_default_timezone_set("Etc/GMT+3"),
$Number = 864000;
// Imprime 1970-01-10 21:00:00
echo date("Y-m-d H:i:s", $Number)."<BR>";
$Number = 36000;
// Imprime 1970-01-01 07:00:00
echo date("Y-m-d H:i:s", $Number)."<BR>";
$Number = 864000-36000;
// Imprime 1970-01-10 11:00:00
echo date("Y-m-d H:i:s", $Number)."<BR>";
Ou seja, em valores absolutos está totalmente errado, pois a função "date" acabou inserindo a correção de timezone.
Como se faz para corrigir isso?
Discussão (3)
Carregando comentários...