diff --git a/application/TimeZone.php b/application/TimeZone.php index ccbef91..e363d90 100644 --- a/application/TimeZone.php +++ b/application/TimeZone.php @@ -5,30 +5,33 @@ * Note: 'UTC/UTC' is mapped to 'UTC' to form a valid option * * Example: preselect Europe/Paris - * list($htmlform, $js) = templateTZform('Europe/Paris'); + * list($htmlform, $js) = generateTimeZoneForm('Europe/Paris'); * * @param string $preselected_timezone preselected timezone (optional) * * @return an array containing the generated HTML form and Javascript code **/ -function generateTimeZoneForm($preselected_timezone='') +function generateTimeZoneForm($preselectedTimezone='') { - // Select the first available timezone if no preselected value is passed - if ($preselected_timezone == '') { - $l = timezone_identifiers_list(); - $preselected_timezone = $l[0]; + // Select the server timezone + if ($preselectedTimezone == '') { + $preselectedTimezone = date_default_timezone_get(); } - // Try to split the provided timezone - $spos = strpos($preselected_timezone, '/'); - $pcontinent = substr($preselected_timezone, 0, $spos); - $pcity = substr($preselected_timezone, $spos+1); + if ($preselectedTimezone == 'UTC') { + $pcity = $pcontinent = 'UTC'; + } else { + // Try to split the provided timezone + $spos = strpos($preselectedTimezone, '/'); + $pcontinent = substr($preselectedTimezone, 0, $spos); + $pcity = substr($preselectedTimezone, $spos+1); + } // Display config form: - $timezone_form = ''; - $timezone_js = ''; + $timezoneForm = ''; + $timezoneJs = ''; - // The list is in the form 'Europe/Paris', 'America/Argentina/Buenos_Aires'... + // The list is in the form 'Europe/Paris', 'America/Argentina/Buenos_Aires' // We split the list in continents/cities. $continents = array(); $cities = array(); @@ -57,33 +60,33 @@ function generateTimeZoneForm($preselected_timezone='') } } - $continents_html = ''; + $continentsHtml = ''; $continents = array_keys($continents); foreach ($continents as $continent) { - $continents_html .= ''; } // Timezone selection form - $timezone_form = 'Continent:'; - $timezone_form .= ''; - $timezone_form .= '    City:'; - $timezone_form .= '
'; + $timezoneForm = 'Continent:'; + $timezoneForm .= ''; + $timezoneForm .= '    City:'; + $timezoneForm .= '
'; // Javascript handler - updates the city list when the user selects a continent - $timezone_js = ''; + $timezoneJs = ''; - return array($timezone_form, $timezone_js); + return array($timezoneForm, $timezoneJs); } /** @@ -107,4 +110,3 @@ function isTimeZoneValid($continent, $city) timezone_identifiers_list() ); } -?> diff --git a/index.php b/index.php index 1439ec2..e3b612c 100644 --- a/index.php +++ b/index.php @@ -5,10 +5,12 @@ // Licence: http://www.opensource.org/licenses/zlib-license.php // Requires: PHP 5.3.x // ----------------------------------------------------------------------------------------------- -// NEVER TRUST IN PHP.INI -// Some hosts do not define a default timezone in php.ini, -// so we have to do this for avoid the strict standard error. -date_default_timezone_set('UTC'); + +// Set 'UTC' as the default timezone if it is not defined in php.ini +// See http://php.net/manual/en/datetime.configuration.php#ini.date.timezone +if (date_default_timezone_get() == '') { + date_default_timezone_set('UTC'); +} // ----------------------------------------------------------------------------------------------- // Hardcoded parameter (These parameters can be overwritten by editing the file /data/config.php) diff --git a/tests/TimeZoneTest.php b/tests/TimeZoneTest.php index f3de391..b219030 100644 --- a/tests/TimeZoneTest.php +++ b/tests/TimeZoneTest.php @@ -80,4 +80,3 @@ class TimeZoneTest extends PHPUnit_Framework_TestCase $this->assertFalse(isTimeZoneValid('Middle_Earth', 'Moria')); } } -?>