Skip to content

Commit

Permalink
Fixed server offset calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
ADmad committed May 13, 2012
1 parent 9628910 commit 14b7210
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
7 changes: 7 additions & 0 deletions lib/Cake/Test/Case/Utility/CakeTimeTest.php
Expand Up @@ -353,6 +353,13 @@ public function testNiceShort() {

$time = time() - DAY;
$this->assertEquals('Yesterday, ' . date('H:i', $time), $this->Time->niceShort($time));

$oldTimezone = date_default_timezone_get();
date_default_timezone_set('Europe/London');

$result = $this->Time->niceShort('2005-01-15 10:00:00', new DateTimeZone('Europe/Brussels'));
$this->assertEqual('Jan 15th 2005, 11:00', $result);
date_default_timezone_set($oldTimezone);
}

/**
Expand Down
6 changes: 5 additions & 1 deletion lib/Cake/Utility/CakeTime.php
Expand Up @@ -200,7 +200,11 @@ protected static function _translateSpecifier($specifier) {
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/time.html#formatting
*/
public static function convert($serverTime, $timezone) {
$serverOffset = self::serverOffset();
static $serverTimezone = null;
if (is_null($serverTimezone) || (date_default_timezone_get() !== $serverTimezone->getName())) {
$serverTimezone = new DateTimeZone(date_default_timezone_get());
}
$serverOffset = $serverTimezone->getOffset(new DateTime('@' . $serverTime));
$gmtTime = $serverTime - $serverOffset;
if (is_numeric($timezone)) {
$userOffset = $timezone * (60 * 60);
Expand Down

0 comments on commit 14b7210

Please sign in to comment.