Manual:Zona horaria

From mediawiki.org
This page is a translated version of the page Manual:Timezone and the translation is 91% complete.
Outdated translations are marked like this.

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 );

A continuación, algunos ejemplos.

$wgLocaltimezone = "UTC";
$wgLocaltimezone = "Europe/London";
$wgLocaltimezone = "Asia/Taipei";
Esta información de zona horaria se usará en:
  • ~~~~ firmas
  • fechado de listas de cambios recientes
  • fechado de cambios en historiales
Añadir este código a 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';
El funcionamiento de los métodos mostrados en esta sección no está comprobado y podrían no funcionar correctamente.

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