Sincronizando fusos horários em PHP e MySQL
Você está desenvolvendo um aplicativo que requer o armazenamento de datas no MySQL usando a função PHP date(). É necessário comparar essas datas no MySQL usando NOW() para calcular diferenças de horário. No entanto, a função PHP date() utiliza o fuso horário definido no PHP, enquanto NOW() emprega o fuso horário configurado no servidor MySQL.
Para resolver esse problema, você tentou várias abordagens:
Por fim, o fuso horário do MySQL permanece inalterado.
Solução
Sincronize fusos horários em PHP e MySQL sem comandos de console manuais ou modificações em php.ini:
PHP:
define('TIMEZONE', 'Europe/Paris');
date_default_timezone_set(TIMEZONE);
MySQL:
$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins d', $hrs*$sgn, $mins);
// Assuming an existing DB connection named $db
$db->exec("SET time_zone='$offset';");
Essa abordagem garante que tanto o PHP quanto o MySQL utilizem o mesmo fuso horário, eliminando discrepâncias no armazenamento e comparação de datas. Além disso, elimina a necessidade de configurações manuais de fuso horário ou modificação de arquivos de configuração global.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3