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:
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.
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