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 = "Asia/Jakarta";
$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");
$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.
Note: Adding this code to the LocalSettings.php in version 1.14 breaks the emailing features (E-Mail New Password, Create User by E-Mail)
Note: Adding this code to the LocalSettings.php conflicts with the RSS Feed dates in Extension:RSS. See the Discussion page of Extension:RSS for more information

[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.

  • This line is all I need in 1.16. It applies to both anonymous and logged in users. Note that you will need to provide the correct values if you want the zone to be selected by default in the timezone dropdown:
$wgDefaultUserOptions['timecorrection'] = 'ZoneInfo|' . (date("I") ? 120 : 60) . '|Europe/Berlin';

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 Specifying the Time Zone with TZ, System configuration: Time Zones and timezones.conf.xml 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.

Language: English  • Ελληνικά • Français • 日本語
Personal tools
Namespaces

Variants
Actions
Navigation
Support
Download
Development
Communication
Print/export
Toolbox