Fix #5191: $wgLocalTZoffset rounds time zones half an hour ahead of UTC

This commit is contained in:
Antoine Musso 2006-04-30 12:20:20 +00:00
parent f64d87b12a
commit 916fab6eb5
3 changed files with 12 additions and 4 deletions

View file

@ -73,6 +73,10 @@ procedure, and especially after upgrading; check that page views and edits work
normally and that special pages continue to function, etc. and correct errors
and quirks which reveal themselves.
== Upgrading from 1.6 wikis ==
$wgLocalTZoffset was in hours, it is now using minutes.
== Upgrading from pre-1.5 wikis ==
Major changes have been made to the schema from 1.4.x. The updater

View file

@ -1654,21 +1654,21 @@ $wgBrowserBlackList = array(
$wgLocaltimezone = null;
/**
* Set an offset from UTC in hours to use for the default timezone setting
* Set an offset from UTC in minutes to use for the default timezone setting
* for anonymous users and new user accounts.
*
* This setting is used for most date/time displays in the software, and is
* overrideable in user preferences. It is *not* used for signature timestamps.
*
* You can set it to match the configured server timezone like this:
* $wgLocalTZoffset = date("Z") / 3600;
* $wgLocalTZoffset = date("Z") / 60;
*
* If your server is not configured for the timezone you want, you can set
* this in conjunction with the signature timezone and override the TZ
* environment variable like so:
* $wgLocaltimezone="Europe/Berlin";
* putenv("TZ=$wgLocaltimezone");
* $wgLocalTZoffset = date("Z") / 3600;
* $wgLocalTZoffset = date("Z") / 60;
*
* Leave at NULL to show times in universal time (UTC/GMT).
*/

View file

@ -527,7 +527,11 @@ class Language {
$hrDiff = 0;
if ( $tz === '' ) {
$hrDiff = isset( $wgLocalTZoffset ) ? $wgLocalTZoffset : 0;
# Global offset in minutes.
if( isset($wgLocalTZoffset) ) {
$hrDiff = $wgLocalTZoffset % 60;
$minDiff = $wgLocalTZoffset - ($hrDiff * 60);
}
} elseif ( strpos( $tz, ':' ) !== false ) {
$tzArray = explode( ':', $tz );
$hrDiff = intval($tzArray[0]);