"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como sincronizar fusos horários em PHP e MySQL?

Como sincronizar fusos horários em PHP e MySQL?

Publicado em 17/11/2024
Navegar:557

How to Synchronize Timezones in PHP and MySQL?

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:

  • date_default_timezone_set('Europe/Paris') afeta apenas PHP.
  • date.timezone = "Europe/Paris" permanece isolado para PHP.
  • SELECT CONVERT_TZ(now(), ' GMT', 'MET') retorna resultados vazios.
  • mysql> SET time_zone = 'Europe/Paris' exibe um erro no console do MySQL.

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.

Tutorial mais recente Mais>

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