Horde_Mapi_Timezone::getOffsetsFromDate PHP Method

getOffsetsFromDate() public static method

Create a offset hash suitable for use in ActiveSync transactions
public static getOffsetsFromDate ( Horde_Date $date ) : array
$date Horde_Date A date object representing the date to base the the tz data on.
return array An offset hash.
    public static function getOffsetsFromDate(Horde_Date $date)
    {
        $offsets = array('bias' => 0, 'stdname' => '', 'stdyear' => 0, 'stdmonth' => 0, 'stdday' => 0, 'stdweek' => 0, 'stdhour' => 0, 'stdminute' => 0, 'stdsecond' => 0, 'stdmillis' => 0, 'stdbias' => 0, 'dstname' => '', 'dstyear' => 0, 'dstmonth' => 0, 'dstday' => 0, 'dstweek' => 0, 'dsthour' => 0, 'dstminute' => 0, 'dstsecond' => 0, 'dstmillis' => 0, 'dstbias' => 0);
        $timezone = $date->toDateTime()->getTimezone();
        // If transition parsing failed, we won't have a multi-element array.
        $transitions = self::_getTransitions($timezone, $date);
        if (!empty($transitions)) {
            list($std, $dst) = self::_getTransitions($timezone, $date);
        }
        if (!empty($std)) {
            $offsets['bias'] = $std['offset'] / 60 * -1;
            if ($dst) {
                $offsets = self::_generateOffsetsForTransition($offsets, $std, 'std');
                $offsets = self::_generateOffsetsForTransition($offsets, $dst, 'dst');
                $offsets['stdhour'] += $dst['offset'] / 3600;
                $offsets['dsthour'] += $std['offset'] / 3600;
                $offsets['dstbias'] = ($dst['offset'] - $std['offset']) / 60 * -1;
            }
        }
        return $offsets;
    }

Usage Example

Beispiel #1
0
 /**
  * Test creating a Offset hash for a given timezone.
  */
 public function testGetOffsetsFromDate()
 {
     // The actual time doesn't matter, we really only need a year and a
     // timezone that we are interested in.
     foreach ($this->_offsets as $tz => $expected) {
         $date = new Horde_Date('2011-07-01', $tz);
         $offsets = Horde_Mapi_Timezone::getOffsetsFromDate($date);
         foreach ($offsets as $key => $value) {
             $this->assertEquals($expected[$key], $value);
         }
     }
 }
All Usage Examples Of Horde_Mapi_Timezone::getOffsetsFromDate