🗄️
Bases de datos
¿Cómo cambiar la zona horaria de MySQL para sincronizarla con la hora local?
Configurar la zona horaria correcta en MySQL y PHP.
Intermedio
Si los registros de tu base de datos están guardando la hora con una diferencia de -3 horas, el problema puede estar en la configuración de zona horaria de MySQL, incluso si ya configuraste PHP.
Aunque hayas establecido 'date.timezone="America/Santiago" en php.ini, MySQL mantiene su propia configuración de zona horaria que es independiente.
Para solucionar esto:
1. **Accede a tu base de datos MySQL** a través de phpMyAdmin o línea de comandos.
2. **Ejecuta el siguiente comando** para verificar la zona horaria actual:
```
SELECT @@global.time_zone, @@session.time_zone;
```
3. **Cambia la zona horaria global** ejecutando:
```
SET GLOBAL time_zone = '-03:00';
```
(Para Chile, usa '-03:00' o '-04:00' según horario de verano)
4. **Verifica en tu archivo de configuración de MySQL** (my.cnf o my.ini). Añade en la sección [mysqld]:
```
default-time-zone = '-03:00'
```
5. **Reinicia el servicio MySQL** para aplicar los cambios permanentes:
```
sudo systemctl restart mysql
```
6. **En tu código PHP**, asegúrate de usar la zona horaria correcta al insertar datos:
```php
date_default_timezone_set('America/Santiago');
```
Luego usa funciones como NOW() en MySQL o date() en PHP de forma consistente.
Si el problema persiste, verifica que el servidor tenga la configuración correcta contactando al equipo de soporte técnico con detalles de tu plan de hosting.
Aunque hayas establecido 'date.timezone="America/Santiago" en php.ini, MySQL mantiene su propia configuración de zona horaria que es independiente.
Para solucionar esto:
1. **Accede a tu base de datos MySQL** a través de phpMyAdmin o línea de comandos.
2. **Ejecuta el siguiente comando** para verificar la zona horaria actual:
```
SELECT @@global.time_zone, @@session.time_zone;
```
3. **Cambia la zona horaria global** ejecutando:
```
SET GLOBAL time_zone = '-03:00';
```
(Para Chile, usa '-03:00' o '-04:00' según horario de verano)
4. **Verifica en tu archivo de configuración de MySQL** (my.cnf o my.ini). Añade en la sección [mysqld]:
```
default-time-zone = '-03:00'
```
5. **Reinicia el servicio MySQL** para aplicar los cambios permanentes:
```
sudo systemctl restart mysql
```
6. **En tu código PHP**, asegúrate de usar la zona horaria correcta al insertar datos:
```php
date_default_timezone_set('America/Santiago');
```
Luego usa funciones como NOW() en MySQL o date() en PHP de forma consistente.
Si el problema persiste, verifica que el servidor tenga la configuración correcta contactando al equipo de soporte técnico con detalles de tu plan de hosting.
Artículos relacionados
🗄️
❓
❓
¿Los planes de hosting permiten conexión remota a las bases de datos?
Acceso remoto a bases de datos desde hosting.
¿Por qué recibo un error 500 al generar archivos PDF desde mi base de datos MySQL?
Soluciona problemas al generar PDFs desde MySQL.
Mi aplicación PHP con MySQL funciona en localhost pero no en el servidor de hosting. El login no funciona y parece que no se conecta a la base de datos, aunque una prueba de conexión simple da OK. ¿Qué puede estar causando este problema?
Aplicación PHP no conecta a BD en hosting aunque funciona localmente
🙋
¿No encontraste lo que buscabas?
Nuestro equipo de soporte está listo para ayudarte.
Contactar soporte