"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo sincronizar zonas horarias en PHP y MySQL?

¿Cómo sincronizar zonas horarias en PHP y MySQL?

Publicado el 2024-11-17
Navegar:820

How to Synchronize Timezones in PHP and MySQL?

Sincronización de zonas horarias en PHP y MySQL

Estás desarrollando una aplicación que requiere almacenar fechas en MySQL usando la función PHP date(). Es necesario comparar estas fechas dentro de MySQL usando NOW() para calcular las diferencias horarias. Sin embargo, la función PHP date() utiliza la zona horaria definida en PHP, mientras que NOW() emplea la zona horaria configurada en el servidor MySQL.

Para resolver este problema, ha intentado varios enfoques:

  • date_default_timezone_set('Europa/París') afecta únicamente a PHP.
  • date.timezone = "Europa/París" permanece aislado en PHP.
  • SELECT CONVERT_TZ(now(), 'GMT', 'MET') devuelve resultados vacíos.
  • mysql> SET time_zone = 'Europe/Paris' genera un error en la consola MySQL .

En última instancia, la zona horaria de MySQL permanece sin cambios.

Solución

Sincronizar zonas horarias en PHP y MySQL sin comandos manuales de consola ni modificaciones en 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';");

Este enfoque garantiza que PHP y MySQL utilicen la misma zona horaria, eliminando discrepancias en el almacenamiento y la comparación de fechas. Además, elimina la necesidad de realizar ajustes manuales de zona horaria o modificar archivos de configuración global.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3