Tools\Utility\Time::tzOffset PHP Method

tzOffset() public static method

EXPERIMENTAL!!!
public static tzOffset ( integer $gmtoffset, boolean $isDst ) : integer
$gmtoffset integer Offset in seconds
$isDst boolean If DST
return integer offset Calculated offset
    public static function tzOffset($gmtoffset, $isDst)
    {
        extract(getdate());
        $serveroffset = gmmktime(0, 0, 0, $mon, $mday, $year) - mktime(0, 0, 0, $mon, $mday, $year);
        $offset = $gmtoffset - $serveroffset;
        return $offset + ($isDst ? 3600 : 0);
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * DatetimeHelperTest::testTzOffset()
  *
  * @return void
  */
 public function testTzOffset()
 {
     $timezone = Configure::read('Config.timezone');
     $phpTimezone = date_default_timezone_get();
     Configure::write('Config.timezone', 'UTC');
     date_default_timezone_set('UTC');
     $this->Time = new Time();
     $result = $this->Time->tzOffset(0, false);
     $this->assertEquals(0, $result);
     Configure::write('Config.timezone', 'Europe/Berlin');
     date_default_timezone_set('Europe/Berlin');
     $factor = date('I') ? 2 : 1;
     $result = $this->Time->tzOffset($factor * HOUR, false);
     $this->assertEquals(0, $result);
     Configure::write('Config.timezone', $timezone);
     date_default_timezone_set($phpTimezone);
 }