1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-06 15:45:34 +02:00

Merge branch 'develop-olympus' into develop

* develop-olympus:
  [ticket/10243] Adding a few unit tests for phpbb_gmgetdate().
  [ticket/10243] Call phpbb_gmgetdate() from various places.
  [ticket/10243] Adding wrapper function for getdate() for UTC timestamps.
This commit is contained in:
Nils Adermann 2011-07-16 22:06:49 -04:00
commit a33b67fd1a
5 changed files with 73 additions and 3 deletions

View File

@ -206,6 +206,27 @@ function phpbb_mt_rand($min, $max)
return ($min > $max) ? mt_rand($max, $min) : mt_rand($min, $max); return ($min > $max) ? mt_rand($max, $min) : mt_rand($min, $max);
} }
/**
* Wrapper for getdate() which returns the equivalent array for UTC timestamps.
*
* @param int $time Unix timestamp (optional)
*
* @return array Returns an associative array of information related to the timestamp.
* See http://www.php.net/manual/en/function.getdate.php
*/
function phpbb_gmgetdate($time = false)
{
if ($time === false)
{
$time = time();
}
// getdate() interprets timestamps in local time.
// What follows uses the fact that getdate() and
// date('Z') balance each other out.
return getdate($time - date('Z'));
}
/** /**
* Return formatted string for filesizes * Return formatted string for filesizes
* *

View File

@ -84,7 +84,7 @@ $legend = implode(', ', $legend);
$birthday_list = array(); $birthday_list = array();
if ($config['load_birthdays'] && $config['allow_birthdays']) if ($config['load_birthdays'] && $config['allow_birthdays'])
{ {
$now = getdate(time() + $user->timezone + $user->dst - date('Z')); $now = phpbb_gmgetdate(time() + $user->timezone + $user->dst);
$sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday $sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday
FROM ' . USERS_TABLE . ' u FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid) LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)

View File

@ -1687,7 +1687,7 @@ function show_profile($data, $user_notes_enabled = false, $warn_user_enabled = f
if ($bday_year) if ($bday_year)
{ {
$now = getdate(time() + $user->timezone + $user->dst - date('Z')); $now = phpbb_gmgetdate(time() + $user->timezone + $user->dst);
$diff = $now['mon'] - $bday_month; $diff = $now['mon'] - $bday_month;
if ($diff == 0) if ($diff == 0)

View File

@ -956,7 +956,7 @@ $sql = $db->sql_build_query('SELECT', array(
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$now = getdate(time() + $user->timezone + $user->dst - date('Z')); $now = phpbb_gmgetdate(time() + $user->timezone + $user->dst);
// Posts are stored in the $rowset array while $attach_list, $user_cache // Posts are stored in the $rowset array while $attach_list, $user_cache
// and the global bbcode_bitfield are built // and the global bbcode_bitfield are built

View File

@ -0,0 +1,49 @@
<?php
/**
*
* @package testing
* @copyright (c) 2011 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
class phpbb_wrapper_gmgetdate_test extends phpbb_test_case
{
public function test_gmgetdate()
{
$this->run_gmgetdate_assertion();
$this->run_test_with_timezone('UTC');
$this->run_test_with_timezone('Europe/Berlin');
$this->run_test_with_timezone('America/Los_Angeles');
$this->run_test_with_timezone('Antarctica/South_Pole');
}
protected function run_test_with_timezone($timezone_identifier)
{
$current_timezone = date_default_timezone_get();
date_default_timezone_set($timezone_identifier);
$this->run_gmgetdate_assertion();
date_default_timezone_set($current_timezone);
}
protected function run_gmgetdate_assertion()
{
$expected = time();
$date_array = phpbb_gmgetdate($expected);
$actual = gmmktime(
$date_array['hours'],
$date_array['minutes'],
$date_array['seconds'],
$date_array['mon'],
$date_array['mday'],
$date_array['year']
);
$this->assertEquals($expected, $actual);
}
}