Manual:Timezone

From MediaWiki.org

Jump to: navigation, search

The default Timezone (tz) for users who have not specified a custom offset may be configured manually.

Contents

[edit] Primary Method

  • Create a backup copy of the LocalSettings.php file found in your install directory
  • Edit LocalSettings.php and add the following code:
#Set Default Timezone
$wgLocaltimezone = "America/New_York";
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
# Versions before 1.7.0 used $wgLocalTZoffset as hours.
# After 1.7.0 offset as minutes
$wgLocalTZoffset = date("Z") / 60;
putenv("TZ=$oldtz");
  • Set the '$wgLocaltimezone' value to the proper value which you can find here. See examples below.
$wgLocaltimezone = "Europe/London";
$wgLocaltimezone = "Asia/Taipei";
$wgLocaltimezone = "Asia/Calcutta";

Note: This timezone will be used in:

  • ~~~~ signatures
  • timestamps in recentchanges
  • timestamps in history

Note: Upload and deletion logs will probably still be listed in UTC
Note: This method has been confirmed to work on MediaWiki: 1.5.6.
Note: The $wgLocalTZoffset configuration changed from hours to minutes in MediaWiki: 1.7.0.

[edit] Unconfirmed Methods

  • If you just want to use the local time of your PC, you can just add this line in your LocalSettings.php:
$wgLocalTZoffset = date("Z") / 60;

  • To use your local time zone (say NZDT) put this in LocalSettings.php
$wgLocalTZoffset = 13 * 60;

  • This example may also work great
$wgLocaltimezone="Europe/Berlin";
$wgLocalTZoffset = +120;
  • In my case the primary method did not take daylight saving time into account. The next example works for me:
#Set Default Timezone
$wgLocaltimezone = "Europe/Amsterdam";
 
#Calculate the timezone offset with UTC 
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 60 + date("I") * 60;
putenv("TZ=$oldtz");

  • To make it work in 1.5.8 I had to specify the offset in hours, so change all occurences of '/ 60' to '/ 3600', e.g.
$wgLocaltimezone = "Europe/Amsterdam";
#Calculate the timezone offset with UTC
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 3600;
putenv("TZ=$oldtz");

I cannot test daylightsavings right now, so you probably have to combine it with the tip above to make that work.

Note: The methods in this section are unconfirmed and may not work properly.

[edit] Manual Timezone Specification

The primary method needs the server to support the 'tz' database; some non-GNU hosts don't do that. You can supply timezone data manually; see here for details. E.g. use

$wgLocaltimezone = "CET-1CEST-2,M3.5.0/2,M10.5.0/2";
instead of
$wgLocaltimezone = "Europe/Budapest";
or
$wgLocaltimezone = "AEST-9,M10.5.0/3,M4.1.0/3";
instead of
$wgLocaltimezone = "Australia/Sydney";

[edit] Specify The Default User's Timezone Offset

In the PHP safe mode, the ways described above may not work since PHP's putenv function is disabled. Alternatively, you can use $wgDefaultUserOptions variable. For instance, If you live in Asia/Tokyo(UTC+9) and want to do "+09:00" time zone correction, add the following code to LocalSettings.php.

$wgDefaultUserOptions['timecorrection'] = '09:00';

After changing the file, don't forget to purge the cache of articles.

Personal tools