Difference between revisions of "Configure timezone on a wiki"

From Organic Design wiki
(the tz hack)
 
(Changing the default timezone for a wiki: PHP bug fixed)
Line 10: Line 10:
 
putenv("TZ=$wgLocaltimezone");
 
putenv("TZ=$wgLocaltimezone");
 
$wgLocalTZoffset = date("Z") / 3600;
 
$wgLocalTZoffset = date("Z") / 3600;
</php>}}
 
 
 
However, for NZST there is a [http://bugs.php.net/bug.php?id=44817 bug in PHP] which prevents the timezone from changing to NZDT properly so the setting needs to be set and updated for the wiki manually when it changes, for example:
 
{{code|<php>
 
$wgLocaltimezone="Pacific/Auckland";
 
$wgLocalTZoffset = 13*60;
 
 
</php>}}
 
</php>}}
  

Revision as of 01:50, 2 April 2009

Procedure.svg Configure timezone on a wiki
Organic Design procedure

Changing the default timezone for a wiki

The default timezone for the server should be set to UTC, so if a particular wiki needs to have a different default from that, the usual way to set it is in the LocalSettings.php file as follows:

{{{1}}}

Signatures

The way the signature timestamps work in MediaWiki is not based on the users preferences, but is instead a global setting so that discussions and other communications don't have differing timezones. However, if as for the NZST problem the $wgLocalTZoffset has been set, then this will not apply to signatures, and the only way to fix this is with a code-base hack :-(

The following adjustments can be made to the signature rendering code in includes/parser/Parser.php at about line 3800. The $tz variable must be calculated from the local timezone, and the normal condition must be removed by prepending a 0 && as follows:

$tz = wfMsgForContent( 'timezone-utc' ); # this is no longer done
$tz = date( 'T', );                      # use the local zone instead
if ( 0 && isset( $wgLocaltimezone ) ) {  # this condition is nulled out with the preceding 0 &&

See also