Tools\Utility\Time::getGmtOffset PHP Method

getGmtOffset() public method

Calculate the current GMT offset from a timezone string (respecting DST)
public getGmtOffset ( string | DateTimeZone | null $timezone = null ) : integer
$timezone string | DateTimeZone | null User's timezone string or DateTimeZone object
return integer Offset in hours
    public function getGmtOffset($timezone = null)
    {
        if ($timezone) {
            $timezone = $this->safeCreateDateTimeZone($timezone);
        } else {
            $timezone = $this->getTimezone();
        }
        $offset = $timezone->getOffset(new DateTime('@' . time()));
        $offset = $offset / HOUR;
        return $offset;
    }

Usage Example

コード例 #1
0
ファイル: TimeTest.php プロジェクト: alescx/cakephp-tools
 /**
  * TimeTest::testGetGmtOffset()
  *
  * @return void
  */
 public function testGetGmtOffset()
 {
     $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->getGmtOffset();
     $this->assertEquals(0, $result);
     $result = $this->Time->getGmtOffset('Europe/Berlin');
     $this->assertTrue($result > 0, $result);
     $result = $this->Time->getGmtOffset('America/Los_Angeles');
     $this->assertTrue($result < 0, $result);
     Configure::write('Config.timezone', $timezone);
     date_default_timezone_set($phpTimezone);
 }