Manual:Timezone
From MediaWiki.org
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 = "Asia/Taipei"; $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'] = '-05:00';
After changing the file, don't forget to purge the cache of articles.