<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -98,10 +98,7 @@
 	require_once INCLUDES_DIR.&quot;/lib/gettext/gettext.php&quot;;
 	require_once INCLUDES_DIR.&quot;/lib/gettext/streams.php&quot;;
 
-	if (function_exists(&quot;date_default_timezone_set&quot;))
-		date_default_timezone_set($config-&gt;timezone);
-	else
-		ini_set(&quot;date.timezone&quot;, $config-&gt;timezone);
+	set_timezone($config-&gt;timezone);
 
 	header(&quot;X-Pingback: &quot;.$config-&gt;chyrp_url.&quot;/includes/xmlrpc.php&quot;);
 </diff>
      <filename>includes/common.php</filename>
    </modified>
    <modified>
      <diff>@@ -1696,7 +1696,7 @@
 				closedir($open);
 			}
 
-			$this-&gt;context[&quot;timezones&quot;] = timezones(true);
+			$this-&gt;context[&quot;timezones&quot;] = timezones();
 
 			if (empty($_POST))
 				return;</diff>
      <filename>includes/controller/Admin.php</filename>
    </modified>
    <modified>
      <diff>@@ -1049,12 +1049,12 @@
 
 		$zones = array();
 		$offsets = array();
-		$reverse = (isset(Config::current()-&gt;timezone)) ? $timezones[Config::current()-&gt;timezone] : 0 ;
+		$undo = $timezones[get_timezone()];
 		foreach ($timezones as $timezone =&gt; $offset) {
 			if (!in_array($offset, $offsets))
 				$zones[] = array(&quot;offset&quot; =&gt; ($offsets[] = $offset) / 3600,
 				                 &quot;name&quot; =&gt; $timezone,
-				                 &quot;now&quot; =&gt; time() - $reverse + $offset);
+				                 &quot;now&quot; =&gt; time() - $undo + $offset);
 		}
 
 		function by_time($a, $b) {
@@ -1067,6 +1067,31 @@
 	}
 
 	/**
+	 * Function: set_timezone
+	 * Sets the timezone.
+	 *
+	 * Parameters:
+	 *     $timezone - The timezone to set.
+	 */
+	function set_timezone($timezone) {
+		if (function_exists(&quot;date_default_timezone_set&quot;))
+			date_default_timezone_set($timezone);
+		else
+			ini_set(&quot;date.timezone&quot;, $timezone);
+	}
+
+	/**
+	 * Function: get_timezone()
+	 * Returns the current timezone.
+	 */
+	function get_timezone() {
+		if (function_exists(&quot;date_default_timezone_set&quot;))
+			return date_default_timezone_get();
+		else
+			return ini_get(&quot;date.timezone&quot;);
+	}
+
+	/**
 	 * Function: error_panicker
 	 * Exits and states where the error occurred.
 	 */</diff>
      <filename>includes/helpers.php</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,8 @@
 	define('XML_RPC', false);
 	define('UPGRADING', false);
 	define('INSTALLING', true);
-	define('TESTER', true);
+
+	define('TESTER', isset($_SERVER['HTTP_USER_AGENT']) and $_SERVER['HTTP_USER_AGENT'] == &quot;tester.rb&quot;);
 
 	ini_set('error_reporting', E_ALL);
 	ini_set('display_errors', true);
@@ -23,6 +24,10 @@
 	# Helpers
 	require INCLUDES_DIR.&quot;/helpers.php&quot;;
 
+	# Atlantic/Reykjavik is 0 offset. Set it so the timezones() function is
+	# always accurate, even if the server has its own timezone settings.
+	set_timezone(&quot;Atlantic/Reykjavik&quot;);
+
 	require_once INCLUDES_DIR.&quot;/class/Query.php&quot;;
 	require_once INCLUDES_DIR.&quot;/class/QueryBuilder.php&quot;;
 	require_once INCLUDES_DIR.&quot;/lib/YAML.php&quot;;</diff>
      <filename>install.php</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c71daaba73c6538dc94d64108eadc3f47c6f7b5f</id>
    </parent>
  </parents>
  <author>
    <name>Alex Suraci</name>
    <email>i.am@toogeneric.com</email>
  </author>
  <url>http://github.com/vito/chyrp/commit/3adf78dfab6e39235682694388d7913361a3a7a4</url>
  <id>3adf78dfab6e39235682694388d7913361a3a7a4</id>
  <committed-date>2008-09-03T18:12:10-07:00</committed-date>
  <authored-date>2008-09-03T18:12:10-07:00</authored-date>
  <message>* Timezone refactoring/fixes.
  * Added set_timezone() and get_timezone().
  * timezones() now undoes the current timezone, instead of the config setting.
  * Set the timezone to an offset of 0 in install.php so it ignores the server's settings.
* Fixed TESTER constant in installer.php</message>
  <tree>bfd1cdee5fc70bf78a955d792390826afa2c9686</tree>
  <committer>
    <name>Alex Suraci</name>
    <email>i.am@toogeneric.com</email>
  </committer>
</commit>
