Cómo establecer la zona horaria de PHP en 2024: 3 métodos diferentes

Cómo establecer la zona horaria de PHP en 2024: 3 métodos diferentes

PHP se establece por defecto en la Hora Universal Coordinada (UTC) independientemente de la zona horaria de tu servidor.

Configurar la zona horaria de PHP con precisión es vital para una gestión precisa de los datos y operaciones sensibles al tiempo como el registro y la programación.

Esta práctica es especialmente útil para las aplicaciones web con audiencias globales fuera de la zona horaria UTC. Por ejemplo, facilita el manejo del horario de verano.

Puedes cambiar la configuración de la zona horaria PHP de tu sitio web utilizando la función PHP o modificando los archivos .htaccess o php.ini

Este artículo explorará cada método para que puedas elegir el más adecuado para tus necesidades.

Cómo establecer la zona horaria de PHP usando una función PHP

La función date_default_timezone_set() establece la zona horaria predeterminada de un script para todas las funciones de fecha y hora. 

Asegura un manejo preciso de los datos relacionados con el tiempo en las aplicaciones web de PHP, incluso si tu servidor de alojamiento web está en una zona horaria diferente a la tuya o a la de tu público objetivo.

La lista de zonas horarias admitidas está disponible en el sitio web oficial de PHP. Verifica dos veces usando la lista de abreviaturas de zonas horarias para asegurarte de seleccionar la zona horaria correcta.

Aquí tienes un ejemplo de cómo usar la función date_default_timezone_set():

<?php
date_default_timezone_set('America/New_York');
?>

Si estás trabajando en un script PHP independiente o en un proyecto sencillo, coloca la función en la parte superior de tu archivo antes de que se llamen a cualquier función de PHP relacionada con la zona horaria. 

Sin embargo, establecer la zona horaria en el archivo de configuración o bootstrap es lo mejor para proyectos más grandes.

Puedes encontrar el archivo de configuración de tu sitio web en el directorio raíz llamado public_html. Aunque el nombre del archivo varía dependiendo del CMS utilizado, generalmente se llama config.php.

Cómo cambiar PHP date.timezone con el archivo .htaccess

Cambiar la configuración de PHP date.timezone utilizando el archivo .htaccess se hace a menudo en entornos de alojamiento compartido donde el archivo php.ini es inaccesible. 

El archivo .htaccess te permite anular las configuraciones del servidor para directorios específicos, incluyendo la configuración de la zona horaria.

El archivo .htaccess es accesible utilizando un administrador de archivos, un cliente FTP y SSH. Usar el Administrador de archivos de la cuenta de alojamiento debería ser el método más fácil para los principiantes.

Cómo cambiar PHP date.timezone usando el Administrador de archivos

Aquí te explicamos cómo cambiar la zona horaria predeterminada de tu sitio web en el archivo .htaccess utilizando el Administrador de archivos de Hostinger:

  1. Navega a ArchivosAdministrador de archivos desde hPanel.
  2. Selecciona Acceder a los archivos de [tu sitio web] para explorar los directorios de ese sitio específico.
Administrador de archivos de Hostinger
  1. Accede al directorio public_html y haz doble clic en el archivo .htaccess para editarlo. Crea un nuevo archivo .htaccess si aún no está presente.
Administrador de archivos de hPanel
  1. Ingresa el siguiente script en la parte superior del archivo. En este ejemplo, estamos configurando la zona horaria a la Hora Estándar Central (CST) utilizando America/Chicago como parámetro. Navega por la lista de zonas horarias para verificar si PHP admite la zona horaria que deseas.
php_value date.timezone 'country/state'
Archivo .htaccess en hPanel
  1. Haz clic en Guardar una vez que hayas terminado.

Cómo cambiar PHP date.timezone usando un cliente FTP

También puedes modificar la configuración de la zona horaria de PHP editando el archivo .htaccess con un cliente FTP, como FileZilla. Los usuarios de Hostinger pueden encontrar sus detalles de FTP en Archivos Cuentas FTP en hPanel.

Aquí te explicamos cómo modificar la zona horaria predeterminada de PHP en el archivo .htaccess utilizando el cliente FTP FileZilla:

  1. Configura FileZilla y conéctate al servidor web FTP.
  2. Ubica el archivo .htaccess en el directorio public_html. Haz clic derecho en él y selecciona Ver/Editar.
Opción Ver/Editar en FileZilla
  1. Establece la zona horaria ingresando el siguiente script en la parte superior de los scripts. No olvides cambiar el valor de date.timezone con tu ubicación preferida.
php_value date.timezone 'country/state'
  1. Marca la opción Finalizar edición y eliminar archivo local antes de guardar los cambios.
opción Finalizar edición y eliminar archivo local de FileZilla

Cómo cambiar PHP date.timezone usando SSH

Protocolo de Shell Seguro (SSH) es un protocolo de administración remota que proporciona acceso directo y control sobre los archivos del servidor. 

Asegura la transmisión segura de datos a través de servidores remotos desde la ventana de terminal, lo que lo convierte en una opción popular para los usuarios experimentados de la línea de comandos.

En este tutorial, estamos utilizando PuTTY, un cliente SSH popular.  Echa un vistazo a nuestro artículo sobre cómo usar el cliente SSH PuTTY para acceder a tu servidor.

Sigue estos pasos para cambiar el valor de date.timezone con el cliente SSH PuTTY:

  1. Establece una conexión SSH. Los usuarios de Hostinger pueden encontrar sus detalles de SSH en Avanzado Acceso SSH en hPanel.
  2. Ingresa el siguiente comando para verificar la zona horaria de su servidor.
php -i | grep "date.timezone"
  1. Utiliza este comando para ver todas las zonas horarias disponibles. Toma nota del que quieras usar.
timedatectl list-timezones
  1. Ingresa este comando para establecer la zona horaria. Reemplaza el identificador de zona horaria según tu preferencia en el paso 3.
timedatectl set-timezone [region/location]

Si encuentras un error durante el proceso de configuración, intenta estas soluciones:

  • Obtén privilegios de root: como modificar la configuración del sistema requiere permisos de root, intenta agregar sudo antes del comando timedatectl . sudo otorga permisos de root temporales para ejecutar el comando.
  • Verifica la variable de entorno PATH: PATH te permite ejecutar un comando sin especificar una ruta. Verifica el tuyo con echo $PATH y localiza timedatectl con find / -name timedatectl 2>/dev/null.
  • Revisa los permisos del usuario: algunos comandos SSH están restringidos para usuarios no root, lo que provoca un error de acceso.

Cómo establecer la zona horaria de PHP usando el archivo php.ini

Establecer la zona horaria deseada en los scripts de PHP utilizando el archivo php.ini es lo mejor para una implementación global en todo el sitio. Este método garantiza la consistencia a nivel de servidor, lo cual es muy importante para operaciones del lado del servidor como cron jobs.

Eliminar la configuración de zona horaria repetida en los scripts también simplifica tu configuración de PHP, haciendo tu código más limpio y eficiente.

Sigue estos pasos para establecer una nueva timezone PHP usando el archivo php.ini. Estamos utilizando el Administrador de archivos de Hostinger, pero siéntete libre de usar un cliente FTP.

  1. Accede al directorio public_html y localiza el archivo php.ini. Si aún no lo tienes, haz clic en Nuevo Archivo y nómbralo php.ini.
Nuevo archivo en el Administrador de archivos de hPanel
  1. Agrega el siguiente script al archivo recién creado. Recuerda cambiar el identificador de zona horaria con tu ubicación preferida.
date.timezone = "country/state"
Archivo php.ini en el Administrador de archivos de Hostinger
  1. Haz clic en Guardar una vez que hayas terminado.
  2. Inicia sesión en tu servidor con un cliente SSH y ejecuta este comando para reiniciar el servidor web Apache:
service apache2 restart

Consejo profesional

Una red de entrega de contenido es excelente para sitios web con una audiencia global. Almacena tu sitio web en diferentes centros de datos a nivel mundial y envía datos desde la ubicación más cercana a los visitantes. Esta red de servidores acelera tu sitio web y evita que tu servidor principal se sobrecargue. Obtén el CDN de Hostinger gratis al comprar los planes de alojamiento web Business o cualquiera de los planes de Cloud hosting.

Conclusión

Establecer la zona horaria correcta en PHP es crucial para garantizar un manejo preciso y consistente de la fecha y la hora en tus aplicaciones web. 

Te ayuda a mantener una experiencia de usuario sin interrupciones para una audiencia global, cumplir con los estándares legales para datos sensibles al tiempo, y garantizar una programación y registro confiables.

Repasemos tres formas efectivas de cambiar la configuración de la zona horaria en PHP:

  • Utilizar una función PHP: ideal para aplicaciones que requieren cambios dinámicos de zona horaria o aquellas que trabajan en servidores compartidos sin acceso a configuraciones globales.
  • Modificar el archivo .htaccess: permite una configuración específica de directorio en entornos de alojamiento compartido.
  • Editar el archivo php.ini: puedes modificar la configuración de la zona horaria a nivel global en todos los scripts de PHP, asegurando consistencia a nivel de servidor.

Esperamos que este artículo te haya ayudado a entender los beneficios y la correcta implementación de la configuración de zonas horarias en scripts PHP. Deja un comentario si tienes alguna pregunta. ¡Buena suerte!

Author
El autor

Diego Vargas

Diego es comunicador social, especialista en publicidad digital que trabaja constantemente en mejorar sus conocimientos de marketing digital, enfocándose en contenido y SEO. Idiomas, series, libros y cursos en internet son sus hobbies principales, además de los deportes. Este es su perfil de LinkedIn.