Manual:Zona horaria
La zona horaria (timezone en inglés, o TZ) para usuarios que no han especificado una puede configurarse manualmente.
Default value
The default value is taken from the webserver configuration (PHP ini file). For documentation:
https://www.php.net/datetime.configuration#ini.date.timezone
Método principal
- Haz una copia de seguridad del archivo LocalSettings.php que se encuentra en tu directorio de instalación
- Edita
LocalSettings.php
y añade el siguiente código:
#Definir zona horaria por defecto
$wgLocaltimezone = "Asia/Jakarta";
date_default_timezone_set( $wgLocaltimezone );
- Pon en $wgLocaltimezone el valor que corresponda de entre los que puedes encontrar aquí para el valor TZ.
A continuación, algunos ejemplos.
$wgLocaltimezone = "UTC";
$wgLocaltimezone = "Europe/London";
$wgLocaltimezone = "Asia/Taipei";
- ~~~~ firmas
- fechado de listas de cambios recientes
- fechado de cambios en historiales
LocalSettings.php
entra en conflicto con el fechado de las noticias que genera Extension:RSS . Mira la página de discusión de la extensión para más información.
Método alternativo
Varios usuarios han confirmado que este método funciona en situaciones en las que el método principal falla.
$wgLocaltimezone = "America/Sao_Paulo";
$dtz = new DateTimeZone($wgLocaltimezone);
$dt = new DateTime('now', $dtz);
$wgLocalTZoffset = $dtz->getOffset($dt) / 60;
unset($dtz);
unset($dt);
Métodos alternativos
Si sólo quieres usar la hora local de tu PC, puedes añadir esta línea a tu LocalSettings.php. Este método es lo que hace MediaWiki por defecto (mira includes/Setup.php); también evita problemas con los cambios de hora:
$wgLocalTZoffset = date("Z") / 60;
Métodos no confirmados
- Para usar tu zona horaria local (por ejemplo, NZDT), pon esto en tu LocalSettings.php
$wgLocalTZoffset = 13 * 60;
- Este ejemplo también puede funcionar
$wgLocaltimezone="Europe/Berlin";
$wgLocalTZoffset = +120;
- En este caso el método principal no tenía en cuenta los cambios de hora. El siguiente ejemplo funciona:
#Definir zona horaria por defecto
$wgLocaltimezone = "Europe/Amsterdam";
#Calcular la diferencia horaria respecto al UTC
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 60 + date("I") * 60;
putenv("TZ=$oldtz");
- Para hacer que funcione con la versión 1.5.8, tienes que indicar la diferencia en horas, así que tienes que cambiar todos los '/ 60' por '/ 3600', por ejemplo.
$wgLocaltimezone = "Europe/Amsterdam";
#Calcular la diferencia horaria respecto al UTC
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 3600;
putenv("TZ=$oldtz");
Combínalo con el truco de arriba para hacer que los cambios de hora se tengan en cuenta.
- Esta línea es necesaria en MW 1.16. Se aplica tanto a los usuarios anónimos como a los identificados. Ten en cuenta que necesitarás aportar los valores correctos si quieres que la zona se elija por defecto en el selector instantáneo de zona horaria:
$wgDefaultUserOptions['timecorrection'] = 'ZoneInfo|' . (date("I") ? 120 : 60) . '|Europe/Berlin';
Indicación manual de la zona horaria
El método principal requiere que el servidor soporte la base de datos 'tz
'; algunos servidores no-GNU no la soportan.
Sin embargo, puedes indicar manualmente la información sobre la zona horaria. Por desgracia, parece que en Windows sólo funciona "GMT0".
Por ejemplo, usa
$wgLocaltimezone = "CET-1CEST-2,M3.5.0/2,M10.5.0/2";
- en lugar de
$wgLocaltimezone = "Europe/Budapest";
- o bien
$wgLocaltimezone = "AEST-9,M10.5.0/3,M4.1.0/3";
- en lugar de
$wgLocaltimezone = "Australia/Sydney";
Para más información, mira
- Configuración de sistema: zonas horarias (lista de zonas horarias)
- Cómo indicar la zona horaria con TZ (formato general)
- timezones.conf.xml (otra lista de zonas horarias)