Lidando com datas, fusos e configurações do Magento
Backend, Desenvolvimento, Magento 1
Atualizado em 02 de fevereiro de 2022
Trabalhar com datas no Magento pode ser algo extremamente complicado e demorado. Principalmente se a sua loja possuí multi localizações, com diferentes timezones.

Recentemente, investi uma manhã inteira brigando com isso aqui no Magenteiro. Embora ainda não seja uma multi-loja, nem multi-locale, o horário do servidor não é o mesmo configurado no Magento, que por sua vez não é o mesmo configurado no banco de dados, e que por fim e mais importante, não é o mesmo dos meus alunos. Sem adicionar o fator do meu fuso, que é 13 horas a mais que no Brasil.
Já deu um nó?
Imagina agora, criar um módulo que faça algo automático envolvendo datas e horas?
Se você não passou por isso, um dia isso vai acontecer.
A solução Magento para lidar com Datas e horas
Depois de muito brigar com config.xml, e php.ini, percebi que sempre tinha alguma ponta solta.
O resumo da solução foi converter tudo para GMT.
Quando o assunto é adicionar tempo, remover tempo, lidar com validade envolvendo data e hora no Magento, a solução é converter tudo pra GMT e trabalhar em cima da data convertida.
Como converter
Para nossa sorte, o Magento já tem o model core/date que faz todo o trabalho sujo pra gente. Ele nos dá uma série de métodos muito bacanas para lidar com datas, e já contemplando as configurações da loja atual.
Vamos a alguns exemplos:
echo Mage::getModel('core/date')->date('d/m/Y H:i:s');
# retorna 22/10/2017 23:30:21 – veja php.net/date para mais detalhes
echo Mage::getModel('core/date')->timestamp();
# retorna o timestamp do timezone atual da loja – veja php.net/time para mais detalhes
echo Mage::getSingleton('core/date)->gmtTimestamp();
# retorna o timestamp da loja convertido para in GMT timezone, com base nas configurações da loja
echo Mage::getSingleton('core/date')->gmtTimestamp() + 86400 * 30;
# adiciona 30 dias no timestamp GMT da loja atual
Outros métodos podem ser encontrados em app/code/core/Mage/Core/Model/Date.php.

Configurações de Fuso no Magento
Lembre-se de configurar o website em questão com o fuso horário que deseja trabalhar.
Isto é feito em Sistema > Configurações> Geral > Opções de Idioma > Fuso horário (SELECT * FROM core_config_data WHERE path = 'general/locale/timezone';).

Outras fontes: StackOverflow, MagePsycho
Foto principal via VisualHunt.
Gostou destas dicas? Comente, compartilhe, acrescente. É a única forma que tenho de saber que devo continuar.
Veja o Magenteiro também no Youtube e Facebook.
- Guest checkout bloqueado na API REST do Magento 2? Confira isso. - 7 de julho de 2026
- Você precisa testar esta plataforma de e-commerce - 9 de fevereiro de 2026
- A hora de montar o seu OnlyFans chegou! Veja 8 ideias pra começar o seu. - 4 de dezembro de 2024
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-1/datas-fusos-e-configuracoes/"]