Fix #5191: $wgLocalTZoffset rounds time zones half an hour ahead of UTC
authorAntoine Musso <hashar@users.mediawiki.org>
Sun, 30 Apr 2006 12:20:20 +0000 (12:20 +0000)
committerAntoine Musso <hashar@users.mediawiki.org>
Sun, 30 Apr 2006 12:20:20 +0000 (12:20 +0000)
UPGRADE
includes/DefaultSettings.php
languages/Language.php

diff --git a/UPGRADE b/UPGRADE
index bec8c55..0a8e933 100644 (file)
--- a/UPGRADE
+++ b/UPGRADE
@@ -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
index ecf8242..22b4944 100644 (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).
  */
index 47753e6..70ca629 100644 (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]);