{"id":6201,"date":"2024-04-26T12:18:28","date_gmt":"2024-04-26T10:18:28","guid":{"rendered":"https:\/\/www.nicalia.com\/nicapedia\/guias\/cpanel\/definir-la-zona-horaria-de-nuestra-web\/"},"modified":"2026-06-09T11:21:04","modified_gmt":"2026-06-09T09:21:04","slug":"definir-la-zona-horaria-de-nuestra-web","status":"publish","type":"docs","link":"https:\/\/www.nicalia.com\/nicapedia\/definir-la-zona-horaria-de-nuestra-web\/","title":{"rendered":"C\u00f3mo definir la zona horaria de tu web con PHP o .htaccess"},"content":{"rendered":"<p>Los servidores de hosting suelen estar configurados con la zona horaria UTC por defecto, lo que puede hacer que las fechas y horas que muestra tu web no coincidan con la hora local de Espa\u00f1a. Para corregirlo es necesario definir la variable <code>date.timezone<\/code> de PHP, que controla c\u00f3mo PHP interpreta y muestra las fechas y horas en tu aplicaci\u00f3n.<\/p>\n<p>Hay tres formas de hacerlo seg\u00fan tu caso de uso: mediante el archivo <strong>.htaccess<\/strong>, mediante un <strong>archivo PHP<\/strong>, o directamente en <strong>wp-config.php<\/strong> si usas WordPress.<\/p>\n<p><!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     H2: ZONAS HORARIAS ESPA\u00d1A\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --><\/p>\n<h2>Zonas horarias m\u00e1s comunes para Espa\u00f1a<\/h2>\n<table>\n<thead>\n<tr>\n<th>Zona horaria<\/th>\n<th>Identificador PHP<\/th>\n<th>Corresponde a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Espa\u00f1a peninsular y Baleares<\/td>\n<td><code>Europe\/Madrid<\/code><\/td>\n<td>CET (UTC+1) \/ CEST (UTC+2 en verano)<\/td>\n<\/tr>\n<tr>\n<td>Islas Canarias<\/td>\n<td><code>Atlantic\/Canary<\/code><\/td>\n<td>WET (UTC+0) \/ WEST (UTC+1 en verano)<\/td>\n<\/tr>\n<tr>\n<td>UTC (sin ajuste)<\/td>\n<td><code>UTC<\/code><\/td>\n<td>Hora universal coordinada<\/td>\n<\/tr>\n<tr>\n<td>Ciudad de M\u00e9xico<\/td>\n<td><code>America\/Mexico_City<\/code><\/td>\n<td>CST (UTC-6) \/ CDT (UTC-5 en verano)<\/td>\n<\/tr>\n<tr>\n<td>Buenos Aires<\/td>\n<td><code>America\/Argentina\/Buenos_Aires<\/code><\/td>\n<td>ART (UTC-3)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Puedes consultar la lista completa de identificadores de zona horaria v\u00e1lidos en la <a href=\"https:\/\/www.php.net\/manual\/es\/timezones.php\" rel=\"nofollow noopener\" target=\"_blank\">documentaci\u00f3n oficial de PHP<\/a>.<\/p>\n<p><!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     H2: M\u00c9TODO 1 \u2014 .HTACCESS\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --><\/p>\n<h2>M\u00e9todo 1 \u2014 Definir la zona horaria en el archivo .htaccess<\/h2>\n<p>Este m\u00e9todo es el m\u00e1s sencillo y afecta a todos los scripts PHP del directorio donde se coloca el <code>.htaccess<\/code>. Es el recomendado para la mayor\u00eda de sitios \u2014 no requiere modificar el c\u00f3digo de la aplicaci\u00f3n.<\/p>\n<p>Abre el archivo <code>.htaccess<\/code> en la ra\u00edz de tu web (desde el <a href=\"https:\/\/www.nicalia.com\/nicapedia\/acceder-al-administrador-de-archivos\/\">Administrador de Archivos de cPanel<\/a> o por FTP) y a\u00f1ade la siguiente l\u00ednea:<\/p>\n<pre><code>php_value date.timezone 'Europe\/Madrid'<\/code><\/pre>\n<p>Sustituye <code>Europe\/Madrid<\/code> por el identificador de zona horaria que corresponda a tu caso. Guarda el archivo \u2014 el cambio surte efecto de forma inmediata para todos los scripts PHP del dominio.<\/p>\n<p>\u2139\ufe0f El archivo <code>.htaccess<\/code> puede estar oculto en el Administrador de Archivos. Para verlo activa la opci\u00f3n \u00abMostrar archivos ocultos\u00bb en los ajustes del Administrador de Archivos.<\/p>\n<p><!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     H2: M\u00c9TODO 2 \u2014 ARCHIVO PHP\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --><\/p>\n<h2>M\u00e9todo 2 \u2014 Definir la zona horaria en un archivo PHP<\/h2>\n<p>Este m\u00e9todo es \u00fatil cuando quieres aplicar la zona horaria solo a un script concreto, o cuando no tienes acceso para editar el <code>.htaccess<\/code>. Debes a\u00f1adir la funci\u00f3n <code>date_default_timezone_set()<\/code> al inicio de cada archivo PHP donde necesites la zona horaria correcta.<\/p>\n<pre><code>&lt;?php\ndate_default_timezone_set('Europe\/Madrid');\n?&gt;<\/code><\/pre>\n<h3>Verificar que el cambio surte efecto<\/h3>\n<p>Para confirmar que la zona horaria se est\u00e1 aplicando correctamente, puedes crear un archivo de prueba (por ejemplo <code>hora.php<\/code>) en la ra\u00edz de tu dominio con el siguiente c\u00f3digo y acceder a \u00e9l desde el navegador:<\/p>\n<pre><code>&lt;?php\ndate_default_timezone_set('Europe\/Madrid');\n\necho date(\"H:i:s - d\/m\/Y\");\n?&gt;<\/code><\/pre>\n<p>Accede a <code>tudominio.com\/hora.php<\/code> \u2014 deber\u00eda mostrarse la hora actual de Madrid. Una vez verificado, puedes eliminar el archivo de prueba.<\/p>\n<p>\u26a0\ufe0f <strong>No dejes el archivo de prueba en producci\u00f3n<\/strong> \u2014 no representa ning\u00fan riesgo de seguridad en s\u00ed mismo, pero es buena pr\u00e1ctica no dejar archivos de prueba accesibles p\u00fablicamente.<\/p>\n<p><!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     H2: M\u00c9TODO 3 \u2014 WORDPRESS\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --><\/p>\n<h2>M\u00e9todo 3 \u2014 Definir la zona horaria en WordPress<\/h2>\n<p>Si tu sitio usa WordPress, hay dos formas de configurar la zona horaria:<\/p>\n<h3>Desde el panel de administraci\u00f3n de WordPress (recomendado)<\/h3>\n<p>Ve a <strong>WordPress \u2192 Ajustes \u2192 Generales \u2192 Zona horaria<\/strong>. Selecciona la ciudad o zona horaria correspondiente en el desplegable y haz clic en <strong>\u00abGuardar cambios\u00bb<\/strong>. WordPress aplicar\u00e1 esta configuraci\u00f3n a todas las fechas del sitio (publicaciones, comentarios, tareas programadas con WP-Cron).<\/p>\n<h3>En wp-config.php (opcional, para forzar la zona horaria en PHP)<\/h3>\n<p>Si necesitas que tambi\u00e9n los scripts PHP del servidor usen la misma zona horaria (no solo WordPress), a\u00f1ade esta l\u00ednea en <code>wp-config.php<\/code> antes de <code>\/* That's all, stop editing! *\/<\/code>:<\/p>\n<pre><code>date_default_timezone_set('Europe\/Madrid');<\/code><\/pre>\n<p><!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     H2: ERRORES COMUNES\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --><\/p>\n<h2>Errores frecuentes al configurar la zona horaria<\/h2>\n<h3>El cambio en .htaccess no surte efecto<\/h3>\n<p>En algunos servidores con CloudLinux y el handler alt-php, la directiva <code>php_value<\/code> en el <code>.htaccess<\/code> puede no funcionar. En ese caso usa el M\u00e9todo 2 (a\u00f1adir <code>date_default_timezone_set()<\/code> en el c\u00f3digo PHP) o configura la zona horaria desde el Selector PHP de cPanel en <em>Software \u2192 Seleccionar versi\u00f3n de PHP \u2192 Opciones \u2192 date.timezone<\/em>. Consulta la gu\u00eda <a href=\"https:\/\/www.nicalia.com\/nicapedia\/como-modificar-el-php-ini\/\">c\u00f3mo modificar los valores de PHP en cPanel<\/a>.<\/p>\n<h3>La hora mostrada es incorrecta a pesar de haber configurado la zona horaria<\/h3>\n<p>Verifica que el identificador de zona horaria es correcto y est\u00e1 bien escrito \u2014 PHP distingue may\u00fasculas y min\u00fasculas en los identificadores de zona horaria (<code>Europe\/Madrid<\/code> es correcto; <code>europe\/madrid<\/code> o <code>Europa\/Madrid<\/code> generar\u00e1n un error). Comprueba tambi\u00e9n que no tienes otra llamada a <code>date_default_timezone_set()<\/code> m\u00e1s adelante en el c\u00f3digo que sobreescriba el valor.<\/p>\n<h3>El horario de verano no se aplica correctamente<\/h3>\n<p>Usar una zona horaria geogr\u00e1fica como <code>Europe\/Madrid<\/code> aplica autom\u00e1ticamente el cambio de horario de verano (CET\/CEST). Si usas un offset num\u00e9rico como <code>UTC+1<\/code>, el cambio de horario de verano NO se aplica autom\u00e1ticamente. Para que el horario de verano se gestione solo, usa siempre identificadores geogr\u00e1ficos (<code>Europe\/Madrid<\/code>) en lugar de offsets fijos.<\/p>\n<p><!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     H2: FAQ\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --><\/p>\n<h2>Preguntas frecuentes sobre zona horaria en PHP<\/h2>\n<h3>\u00bfC\u00f3mo cambiar la zona horaria de PHP en el hosting de Nicalia?<\/h3>\n<p>Hay tres m\u00e9todos: (1) en el <code>.htaccess<\/code>, a\u00f1ade: <code>php_value date.timezone 'Europe\/Madrid'<\/code>; (2) en el c\u00f3digo PHP, a\u00f1ade al inicio: <code>date_default_timezone_set('Europe\/Madrid');<\/code>; (3) en WordPress, ve a <em>Ajustes \u2192 Generales \u2192 Zona horaria<\/em>.<\/p>\n<h3>\u00bfCu\u00e1l es el identificador de zona horaria de Espa\u00f1a en PHP?<\/h3>\n<p>Para Espa\u00f1a peninsular y Baleares: <code>Europe\/Madrid<\/code>. Para las Islas Canarias: <code>Atlantic\/Canary<\/code>. Estos identificadores aplican autom\u00e1ticamente el cambio de horario de verano.<\/p>\n<h3>\u00bfPor qu\u00e9 la hora de mi web no coincide con la hora espa\u00f1ola?<\/h3>\n<p>Porque el servidor est\u00e1 configurado con la zona horaria UTC (hora universal) por defecto. Espa\u00f1a tiene UTC+1 en invierno y UTC+2 en verano, por lo que hay una diferencia de 1-2 horas. Para corregirlo debes definir <code>date.timezone = Europe\/Madrid<\/code> en la configuraci\u00f3n de PHP de tu dominio.<\/p>\n<h3>\u00bfLa configuraci\u00f3n en .htaccess afecta a todos los dominios de mi hosting o solo a uno?<\/h3>\n<p>Solo al directorio donde est\u00e1 el <code>.htaccess<\/code> y todos sus subdirectorios. Si tienes varios dominios en la misma cuenta de cPanel cada uno tiene su propia carpeta y su propio <code>.htaccess<\/code>, por lo que debes configurar la zona horaria en cada uno de forma independiente.<\/p>\n<h3>\u00bfPuedo configurar la zona horaria desde cPanel sin editar archivos?<\/h3>\n<p>S\u00ed. En cPanel ve a <strong>Software \u2192 Seleccionar versi\u00f3n de PHP \u2192 Opciones<\/strong> y modifica el valor de <strong>date.timezone<\/strong>. Este m\u00e9todo aplica la zona horaria a nivel de cuenta para la versi\u00f3n de PHP seleccionada, sin necesidad de editar el <code>.htaccess<\/code> ni el c\u00f3digo. Consulta la gu\u00eda <a href=\"https:\/\/www.nicalia.com\/nicapedia\/como-modificar-el-php-ini\/\">c\u00f3mo modificar los valores de PHP en cPanel<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los servidores de hosting suelen estar configurados con la zona horaria UTC por defecto, lo que puede hacer que las fechas y horas que muestra tu web no coincidan con la hora local de Espa\u00f1a. Para corregirlo es necesario definir la variable date.timezone de PHP, que controla c\u00f3mo PHP interpreta y muestra las fechas y [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":8660,"menu_order":78,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"doc_badge":[],"class_list":["post-6201","docs","type-docs","status-publish","hentry","no-post-thumbnail"],"acf":[],"author_avatar":"https:\/\/secure.gravatar.com\/avatar\/4471485c4e49f46218d6b6d125f80f4cde1f86f045fd896202eefddaf4d4510a?s=96&d=mm&r=g","author_name":"Francisco Garvi","_links":{"self":[{"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/docs\/6201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/comments?post=6201"}],"version-history":[{"count":6,"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/docs\/6201\/revisions"}],"predecessor-version":[{"id":10104,"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/docs\/6201\/revisions\/10104"}],"up":[{"embeddable":true,"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/docs\/8660"}],"wp:attachment":[{"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/media?parent=6201"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/doc_tag?post=6201"},{"taxonomy":"doc_badge","embeddable":true,"href":"https:\/\/www.nicalia.com\/nicapedia\/wp-json\/wp\/v2\/doc_badge?post=6201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}