1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-05 23:25:30 +02:00

Merge remote-tracking branch 'github-bantu/ticket/10243' into develop-olympus

* github-bantu/ticket/10243:
  [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:05:03 -04:00
commit 0f86034f03
5 changed files with 73 additions and 3 deletions

View File

@ -265,6 +265,27 @@ function phpbb_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
*

View File

@ -83,7 +83,7 @@ $legend = implode(', ', $legend);
$birthday_list = '';
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
FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)

View File

@ -1685,7 +1685,7 @@ function show_profile($data, $user_notes_enabled = false, $warn_user_enabled = f
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;
if ($diff == 0)

View File

@ -995,7 +995,7 @@ $sql = $db->sql_build_query('SELECT', array(
$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
// 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);
}
}